Preheat oven to 300 degrees F.
Pat dry chuck roast. Season on both sides generously with Kosher salt (about 1 teaspoon per side) and ground black pepper (about ½ teaspoon per side).
In a large Dutch oven, heat a few generous drizzles of oil over medium-high heat. Once hot, sear chuck roast on both sides until a golden brown crust forms, about 5 minutes per side. Remove from the pot and set aside. Tip: Let it sear undisturbed so it forms a nice crust.
Reduce heat to medium. In the same pot (do not wipe clean), melt the butter. Add the sliced onions - it will seem like a lot, but will reduce significantly. Cook, stirring occasionally, for a total of 25-30 minutes. If needed, add a splash of broth to deglaze any brown bits. Cook until they have a light brown color (it will continue to caramelize in the oven).
Add minced garlic for another 2 minutes. Stir in the white wine to deglaze, then let it reduce by about half. Sprinkle 1 tablespoon of flour and stir to coat.
Next, add beef broth and Worcestershire sauce, bay leaves, and the sprigs of rosemary and thyme (tied with kitchen twine, if preferred). Bring to a simmer. Season with salt and pepper to taste.
Return the seared chuck roast into the pot. The liquid should cover about ¾ or more of the beef. If not, top with more broth.
Cover tightly with the lid and braise in the preheated oven for 3.5 hours until fall-apart tender. If you want it even more tender, cook for an additional 20 minutes.
Remove from the oven. Increase oven temperature to 400 degrees F.
In the same pot, shred the beef into smaller chunks. Discard any excess fat, as well as the bay leaves and herb bundles.
Top evenly with shredded Gruyere cheese. Return to the oven (400F) until the cheese is melted, about 5-7 minutes.
Serve warm over mashed potatoes or your favorite sides, as well as toasted baguette slices. Enjoy!