Adding Stop Button To Break the Process

I am new and having a few problems with a simple code I have
I want to add a button so that when its pressed it stops the Process, But as I am using 'Delay' I figure this is why I cannot add a Stop Button.
Could some one please help me to implement a timer system and add a stop/kill button to the code?

Thank you

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin
const int fillPin = 12;

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);  
  pinMode(fillPin, OUTPUT);  
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT); 
  
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {     
    // turn LED on:    
    digitalWrite(ledPin, HIGH); 
    delay(4000);
    digitalWrite(ledPin, LOW);
    digitalWrite(fillPin, HIGH);
    delay(10000);
    digitalWrite(fillPin, LOW);
  } 
  else {
    // turn LED off:
    digitalWrite(ledPin, LOW); 
  }
  
}

You need to understand how the Blink Without Delay sketch works. It gives you the delay you need without blocking your other functions from doing their jobs, like checking the state of a button.