Can't control a "goto" command. Open for sugestions

So, as always, i'm a begineer in this matter and i have a project to complete. So my idea is that my photo/light sensor reacts at a certain value between the 0-1023, and that triggers the rest of the process.
If you look at my code sheet you can see that my problem is that when i give the "if" command to make a "goto", i can't make that the rest of the program "flows".

I tried to check the wiki and other posts but they were a bit confusing since it showed a lot of stuff I don't understand...

Where's my actual code, and try to ignore the part past "start", which is what i want to trigger with the lightsensor.

If you have a better and simpler solution, i'm open try it!

("sensorluz" - is the thingy to name the analog entrance to the lightsensor)

int sensorluz = 0;
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int f = 8;
int g = 9;
int buzzer = 13;


void setup() {

  pinMode (2, OUTPUT);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);
  pinMode (5, OUTPUT);
  pinMode (6, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (9, OUTPUT);
  pinMode (13, OUTPUT);
  Serial.begin(9600);


}

void loop() {

analogRead(0);

 if analogRead(0)> 500 {goto (start)};
 
 






}

start:

void loop(){  
    //9

  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(8, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(9, LOW);
  digitalWrite(8, LOW);

    //8
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  
  //7

  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);

  
  //6
  digitalWrite(2, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(4, HIGH);                           
  digitalWrite(5, HIGH);
  digitalWrite(6, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(4, LOW);                           
  digitalWrite(5, LOW);
  digitalWrite(6, LOW);


  //5
  
  digitalWrite(2, HIGH);
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(4, HIGH);                           
  digitalWrite(5, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(4, LOW);                           
  digitalWrite(5, LOW);


  //4
  digitalWrite(8, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  delay(1000);
  digitalWrite(8, LOW);
  digitalWrite(9, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);

    //3
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(4, HIGH);
  digitalWrite(5, HIGH);
  delay(1000);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(9, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);


  
  //2
  digitalWrite(2, HIGH);
  digitalWrite(3, HIGH);
  digitalWrite(9, HIGH);
  digitalWrite(6, HIGH);
  digitalWrite(5, HIGH);
  delay(1000);                       
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(9, LOW);
  digitalWrite(6, LOW);
  digitalWrite(5, LOW);

  //1
  digitalWrite(3, HIGH);
  digitalWrite(4, HIGH);
  delay (1000);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);



  tone(buzzer, 1000);
  delay(1000);
  tone(buzzer, 100);
  delay(1000);
  tone(buzzer, 10000);
  delay(2000);
  tone(buzzer, 2500);
  noTone(buzzer);




}

analogRead(0); <———<<<< this does nothing for you.

if analogRead(0)> 500 {goto (start)}; <———<<<< bad syntax.

goto (start) <———<<<< never use goto

Ok so what should I do if "If" is correct?

Just did that!
Thanks for the help anyway!!!
Really appreciate it

The GOTO instruction has it's uses. At the machine code level, GOTO and its derivative branching instructions typically constitute about 25% of a processor's instruction set, can't function without it. At any level above assembly however, the use of GOTO should be considered only if other options are not available. What you don't see when coding with a high level language is all the convenient housekeeping that takes place in the background. Pushing and popping register values, temporary variables on the stack, all this gets disrupted if you unceremoniously change the program flow. You probably wouldn't use inline assembly without knowing what you were doing, don't use GOTO without knowing what you are potentially inadvertently doing.