Preheat the oven to 300°F (150°C). Pat the chuck roast dry and season generously with salt and pepper. Heat olive oil in a Dutch oven over medium-high heat and sear the roast on both sides for about 5 minutes per side, until a deep brown crust forms.
Remove the roast and lower the heat to medium. Add butter and sliced onions, cooking slowly for 25–30 minutes until the onions become soft, golden, and fragrant. Don’t rush this step—caramelized onions are the heart of this dish.
Stir in the garlic and cook for 2 minutes until fragrant. Pour in the wine and let it reduce by half. Sprinkle in the flour and stir to combine. Add beef broth, Worcestershire sauce, bay leaves, rosemary, and thyme. Place the seared roast back into the pot, ensuring the liquid covers about three-quarters of the meat.
Cover the Dutch oven tightly and place it in the preheated oven. Let the roast braise for about 3½ hours, or until the beef is fork-tender and easily pulls apart. For an extra tender result, cook for an additional 20 minutes.
Remove the pot from the oven and increase the temperature to 400°F (200°C). Shred the beef into large chunks, discard the herb sprigs and bay leaves, and sprinkle the Gruyère cheese over the top. Return the pot to the oven for about 5–7 minutes, until the cheese is melted and bubbly. Serve warm with mashed potatoes or baguette slices.