Slice the onions. Use a mandoline to ensure evenly sliced onions. Peel the onions then slice into 2mm thick slices. Set aside.
Caramelize the onions. Add the butter to a large dutch oven over medium heat. Once the butter is melted and foamy, add the onions and toss well to coat in the butter. Cover the pot and cook for 5 minutes. Uncover and reduce the heat to medium-low and season lightly with salt and pepper. Add the sliced garlic and bay leaves and toss well. Cook, stirring every 5-10 minutes, until the onions are deeply golden brown, about 45 min to 1 hour.
Season the onions. Once the onions are deeply browned, increase the heat to medium and add the dijon, Worcestershire, and thyme leaves to the pot. Once the onions are sizzling, add the vermouth and simmer for 5 minutes.
Make the soup. Add the beef stock to the onions and bring to a simmer. Simmer for 15-20 minutes, until slightly thickened. Season to taste with salt and pepper.
Preheat an oven to 425 F.
Toast the bread. Spread the baguette slices out on a baking sheet and spread with the softened butter and season with salt and pepper. Toast for 7-10 minutes, until golden brown. Once the bread is out of the oven, rub the toasted bread with a clove of garlic.
Broil. Ladle the soup into oven-safe bowls and top with the toasted baguette. Top with shredded gruyere and place the bowls on a baking sheet. Transfer to the oven for 10 minutes, finishing by broiling if needed.