Start caramelizing the onions. Heat a heavy-bottomed oven-safe pan with a lid over medium heat and coat the bottom with olive oil. Add the sliced onions, chopped garlic, and a few generous pinches of salt, gently stirring to coat. Dot the onions with butter, cover, and let them cook, stirring with a wooden spatula every 5–8 minutes to release moisture and prevent sticking.
¼ cup olive oil, 3 large sweet or yellow onions, 3 cloves garlic, 2 tablespoons unsalted butter
Meanwhile, prepare and bake the meatballs. Preheat the oven to 400°F and line a large baking sheet with parchment paper. In a medium bowl, combine the ground beef, panko, Parmesan, parsley, egg, garlic powder, onion powder, and kosher salt. Mix gently with your hands just until combined (over-mixing causes dense and tough meatballs). Roll into 16 meatballs, place on the sheet, and bake for 10 minutes (they finish cooking in step 6).
1 lb ground beef, ¼ cup panko breadcrumbs, ¼ cup grated Parmesan cheese, ¼ cup chopped parsley, 1 large egg, 1 teaspoon garlic powder, 1 teaspoon onion powder, ½ teaspoon kosher salt
Build flavor in the onions. Back to the onions: After about 15-20 minutes, once light brown bits begin forming on the bottom of the pan, add the bay leaves, thyme, cannellini beans, sherry/brandy/wine/broth and a few cracks of black pepper. Stir to distribute evenly and reduce the heat to medium-low. Leave the pan uncovered from this point forward.
2 bay leaves, ½ teaspoon dried thyme, ¼ cup dry sherry, dry white wine, or brandy, 1 cup cannellini beans
Finish caramelizing slowly and correctly. Continue cooking the onions for about 30 more minutes, stirring every 5 minutes. Avoid stirring too frequently as this prevents browning/caramelization. If you notice dark or stuck bits forming too quickly, add a small splash of water or broth and gently scrape the bottom with a wooden spatula to deglaze.
Create the onion broth. Once the onions are caramelized and jammy to your preference, add the broth, and balsamic vinegar. Stir, then give it a taste and adjust for seasonings. Increase the heat to medium and bring the mixture to a gentle bubble. Remove and discard the bay leaves.
3 cups chicken or beef broth, ½ teaspoon balsamic vinegar, Salt and black pepper
Combine, top, and melt. Nestle the partially cooked meatballs into the onion and bean mixture. Sprinkle the Gruyère evenly over the top, then transfer the pan to the oven for about 5 minutes, just until the cheese is fully melted and bubbling. Garnish with extra Parmesan or parsley before serving.
1 cup shredded Gruyère cheese, parmesan cheese and parsely