Heat a large soup pot or dutch oven over medium-heat. Melt butter and olive oil, then add the onions, garlic, bay leaves, dried thyme, ½ teaspoon salt and ½ teaspoon pepper. Stir frequently while onions cook down; about 20-30 minutes. If they begin to brown, turn down the heat or remove the pot from the heat for a minute. *Note - onions can take as long as 45 minutes to become soft and golden brown.
Stir in flour, and cook, stirring frequently, for about 5-7 minutes.
Pour in beef broth. Bring to a boil, then reduce heat, cover and simmer for 30 minutes. Season with more salt and pepper if desired.
Preheat broiler and line a baking sheet with foil. Ladle soup into oven safe bowl or ramekins, top with 1-2 baguette slices and 1-2 heaping tablespoons of Gruyere.
Broil for several minutes, until the cheese is melted and golden. Garnish with sprigs of thyme or fresh minced parsley if desired.
If you don’t have oven safe bowls for broiling: Place the baguette slices (1-2 per person) on a lined baking sheet. Place a heaping tablespoon of cheese on each slice and broil for several minutes, until the cheese is melted and golden. Ladle soup into bowls and top with cheese toast. Garnish with parsley or thyme if desired.
Notes
White or yellow onions are best, and the sweeter the better. Try Walla Walla of Vidalia varieties. Time is your friend. Don't try to rush the onions cooking time or they will burn and that ruins the flavors. Keep in mind that 20-30 minutes is a general time and it could take as long as 40-45 minutes.