Slice the onions into thin rings and mince your garlic.
Heat a big pot over medium-low, then toss in butter and olive oil.
Add onions, sugar, salt, and pepper.
Stir now and then for about 35-40 minutes until the onions turn a deep golden brown.
Stir in garlic, thyme, and bay leaves for about a minute so everything gets fragrant.
Pour in beef broth, crank up the heat to bring it to a boil, then drop it down and let it simmer uncovered for 30 minutes.
While that’s simmering, slice your baguette and toast the pieces in the oven until they’re golden and crisp.
Ladle soup into oven-safe bowls, top with a toasted bread slice, and then add Gruyère and Provolone on each.
Broil for 2-3 minutes until the cheese melts and bubbles.