How do you plan to solve it?
 
 
/*Paste your code here*/
const int buttonPin = 2;  
const int leds[] = {3, 4, 5, 6};  // LED pins (LED1 = pin3, LED2 = pin4, etc.)
int pattern = 0;      
int lastButtonState = HIGH;
unsigned long lastDebounceTime = 0;
unsigned long debounceDelay = 200;
void setup() {
  for (int i = 0; i < 4; i++) {
    pinMode(leds[i], OUTPUT);
  }
  pinMode(buttonPin, INPUT_PULLUP);
}
void loop() {
  int reading = digitalRead(buttonPin);
  if (reading == LOW && lastButtonState == HIGH && (millis() - lastDebounceTime) > debounceDelay) {
    pattern = (pattern + 1) % 5; // Cycle through 5 patterns
    lastDebounceTime = millis();
  }
  lastButtonState = reading;
  switch (pattern) {
    case 0: pattern1(); break;
    case 1: pattern2(); break;
    case 2: pattern3(); break;
    case 3: pattern4(); break;
    case 4: pattern5(); break;
  }
}
void pattern1() {
  allOff();
  for (int i = 0; i < 4; i++) digitalWrite(leds[i], HIGH);
  delay(300);
  allOff();
  delay(300);
}
void pattern2() {
  digitalWrite(leds[0], HIGH); // LED1
  digitalWrite(leds[2], HIGH); // LED3
  digitalWrite(leds[1], LOW);
  digitalWrite(leds[3], LOW);
  delay(300);
  digitalWrite(leds[0], LOW);
  digitalWrite(leds[2], LOW);
  digitalWrite(leds[1], HIGH); // LED2
  digitalWrite(leds[3], HIGH); // LED4
  delay(300);
}
void pattern3() {
  for (int i = 0; i < 4; i++) {
    allOff();
    digitalWrite(leds[i], HIGH);
    delay(250);
  }
}
void pattern4() {
  allOff();
  digitalWrite(leds[0], HIGH);
  digitalWrite(leds[1], HIGH);
  delay(400);
  allOff();
  digitalWrite(leds[2], HIGH);
  digitalWrite(leds[3], HIGH);
  delay(400);
}
void pattern5() {
  allOff();
  digitalWrite(leds[0], HIGH);
  digitalWrite(leds[3], HIGH);
  delay(400);
  allOff();
  digitalWrite(leds[1], HIGH);
  digitalWrite(leds[2], HIGH);
  delay(400);
}
void allOff() {
  for (int i = 0; i < 4; i++) digitalWrite(leds[i], LOW);
}

Add a video of the output (know more)
https://wokwi.com/projects/442532090942456833
