Preheat your oven to 325°F. Heat olive oil in a Dutch oven over medium-high heat. Season the short ribs generously with salt and pepper. When the oil is hot, sear the ribs on all sides until golden brown, about 3–4 minutes per side. Removing excess fat from the ribs before cooking ensures cleaner, bolder flavors. Once done, set the ribs aside.
Using the same pot, add the sliced onions. Sprinkle them with a pinch of salt and cook over medium heat, stirring often. After 8–10 minutes, add the garlic. Continue cooking for 20 minutes until the onions are golden and caramelized. This slow cooking builds the irresistible depth that makes this dish so special!
Sprinkle the flour over the onions and stir to coat evenly. Cook for 1 minute to remove the raw taste. Deglaze the pot with red wine, using a wooden spoon to scrape up the browned bits stuck to the bottom. This step adds incredible flavor to the dish. Slowly pour in the beef broth, add Worcestershire sauce, thyme, and bay leaves, and bring to a gentle simmer. Nestle the seared short ribs into the pot.
Cover the Dutch oven and place it in the preheated oven. Cook for 2.5 to 3 hours, turning the ribs halfway through. The slow cooking ensures the meat becomes melt-in-your-mouth tender while infusing its flavors into the luscious broth.
Remove the pot from the oven and discard the bay leaves. Sprinkle the Gruyère cheese evenly over the ribs and sauce. Switch your oven to broil and return the uncovered pot for 3–5 minutes, just until the cheese is bubbling and golden. Garnish with fresh parsley before serving.