Millis Function only returning Zero

Here is the full code

#include <arduino.h>


unsigned long millis(void);


const int Photogate = 2;
const int Button = 3;
const int Magnet = 10;
const int LED = 12;

void setup() {

    Serial.begin(9600);

    pinMode(Photogate, INPUT);
    pinMode(Button, INPUT);
    pinMode(Magnet, OUTPUT);
    pinMode(LED, OUTPUT);

    digitalWrite(Magnet, HIGH);
    digitalWrite(LED, LOW);

}

int main() {

    int Armed = 0;
    int GateState = 0;
    int ButtonState = 0;

    setup();

    while (Armed == 0) {
        ButtonState = digitalRead(Button);
        if (ButtonState == LOW) {
            Serial.print("Button Pushed\n");
            digitalWrite(LED, HIGH);
            Armed = 1;
            while (Armed == 1) {
                GateState = digitalRead(Photogate);
                if (GateState == LOW) {
                    Serial.print("Second button pushed\n");
                    digitalWrite(Magnet, LOW);
                    digitalWrite(LED, LOW);
                    //delay(5000);
                    unsigned long currentMillis = millis();
                    const int INTERVAL = 5000;
                    while (millis() < INTERVAL + currentMillis) {
                        pinMode(8, OUTPUT);
                        digitalWrite(8, HIGH);

                        Serial.print(millis());
                        Serial.print("\n");
                    }
                    digitalWrite(8, LOW);
                    digitalWrite(Magnet, HIGH);
                    Armed = 0;
                } else {
                    Armed = 1;
                }
            }
        } else {
            Armed = 0;
        }
    }
    return 0;
}