how to shorten this code for a railway crossing model

#include<Servo.h>

Servo gate;

int button = 8;
int led1 = 4;
int led2 = 13;
int buzzer = 9;
bool buttonState = HIGH;

void setup() {
// put your setup code here, to run once:
gate.attach(5);

gate.write(0);

pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(button, INPUT_PULLUP);
}

void loop() {
// put your main code here, to run repeatedly:
buttonState = digitalRead(button);

if(buttonState == LOW);{
gate.write(180);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
digitalWrite(led2, HIGH);
delay(1000);
digitalWrite(led2, LOW);
digitalWrite(led1, HIGH);
delay(1000);
digitalWrite(led1, LOW);
}
else{
gate.write(0);
}
delay(15);
}

Well with that exact code I guess you could just remove the button entirely. Since you have a semicolon on the end of your if statement, the block there runs no matter what and the else never happens. Your button doesn't mean anything.

if(buttonState == LOW);{

That semicolon needs to go.

Next it looks like the inside could probably be written as a for loop.