1.
Heat the oil in a large saucepan or stock pot over medium heat. Add the garlic and saute for a couple minutes. Add the onions and about a teaspoon of salt. Cook over medium to medium-low heat, stirring occasionally. It takes about 40 minutes to fully caramelize the onions and they will reduce by about 75%. See footnotes.
2.
Pour the beef stock in the pot with the onions. Tie the bay leaf, parsley, and thyme together with a string, or put them in an infuser. Add the herbs to the soup. Simmer for 20 minutes. After 20 minutes, add balsamic vinegar and stir well.
3.
Slice bread into 1 inch pieces and lightly toast in oven or toaster. Ladle soup into crocks and place bread and one slice of each cheese on top. Broil in oven on top rack for 3-5 minutes, until cheese is bubbly and turning golden brown.
Tip
To quarter julienne: Slice onion once lengthwise. Place cut side down and slice lengthwise again. Turn and make 1/4 inch slices across the onion to produce thin, quarter round pieces.
Tip
The onions take a long time to cook down, and this is the secret to any good French onion soup. They are not done until they are almost black. Dont add any extra water or oil to the onions while they are cooking...they will release plenty of moisture on their own. Check out the link to my website for photos.