Cut each onion lengthwise, then thinly slice them.
In a saucepan, melt 2 tablespoons of butter over medium-high heat. Add the sliced onions to the pan. Once the onions begin to brown, reduce the heat to medium.
Sauté the onions until they are browned through, which usually takes about 30 minutes.
Add the remaining butter to the pan along with the minced garlic and flour. Scrape up any brown bits from the bottom of the pan.
Deglaze the pan by pouring in the white wine. Stir well to incorporate all the flavors.
Pour in the beef broth and bring the mixture to a boil. Let it boil for 5 minutes, then reduce the heat and simmer for an additional 5-10 minutes.
Preheat the oven to 375°F (190°C). Fill ramekins about ¾ full with the soup. Cover the top of each ramekin with a generous amount of Parmesan and Gruyere cheeses.
If using pizza dough, cut it into evenly sized rolls and place two on top of each ramekin.
Bake the ramekins in the oven for about 15 minutes or until the tops of the bread are golden brown.
Allow the soup to cool for 15 minutes before serving. Serve this magical soup to good witches, wizards, and Muggles alike. Enjoy!