Using Switch in a If if condition

Sadly I have no time left. Two ideas from me (see comments):

void loop() {

buttonState = digitalRead(BUTTON_PIN4);

if (buttonState != lastButtonState) {
  
}
    if (buttonState == LOW) {

      buttonPushCounter += 1;

// what if 8 is exceeded at this point? Won´t
 if (buttonState == 0) {
		// as the max value in switch statement is 8, set to 0 if 8 was last state
		if (buttonPushCounter >= 8)
			buttonPushCounter = 0;
		else
			++buttonPushCounter;  
	}
// make more sense?

      
      delay(250);  
  }

 lastButtonState = buttonPushCounter;

// Why do you remember the counter 
// (which could be much higher then 0 or 1)? 
// How ´bout
	lastButtonState = buttonState;