The first step is to melt butter in a large, high-sided skillet over medium heat. Add sliced onions and season with salt and black pepper, to taste. Stir to combine. Cook, stirring occasionally, until caramelized, approximately 45 minutes to one hour.
Deglaze the bottom of the pan by adding the red wine and balsamic vinegar and gently scraping the browned bits off the bottom with a spatula.
Add the broth, bay leaves, Italian seasoning, garlic powder, and sprigs of fresh thyme. Season with additional salt and black pepper, if desired, and stir to combine.
Increase to medium-high heat and bring to a rapid boil then immediately reduce heat to medium-low. Cover the skillet with a lid and simmer, stirring occasionally, for two hours.
Remove from heat and discard the thyme stems and bay leaves. Divide the soup between four large oven-safe ramekins or bowl. Top with slices of the Gruyère cheese, followed by the freshly grated Parmesan cheese.
Place top oven rack in the second position from top and set the broiler to high.
Arrange ramekins or your favorite soup bowls on your large prepared baking sheet then place on the top oven rack. Broil until the melted cheese and brown bits are showing. Do this for approximately 8-10 minutes. Remove from oven and serve immediately garnished with a few fresh thyme leaves. on top of the soup. Enjoy!