Heat oven. Preheat oven to 300F.
Season and sear. Pat roast dry. Season generously with salt and pepper. Lightly dust with flour if using. Heat oil (and butter if using) in a Dutch oven over medium-high heat. Sear the roast 4 to 5 minutes per side until deeply browned. Transfer to a plate.
Build flavor. Add onion to the pot and cook 3 to 4 minutes until softened. Stir in garlic and tomato paste and cook 1 minute.
Deglaze. Pour in wine (or extra broth) and scrape up browned bits. Add broth, Worcestershire, balsamic (if using), thyme, and bay leaf.
Braise. Return roast to the pot. Liquid should come about halfway up the meat—add a splash more broth if needed. Cover with a lid and bake 2 hours.
Add vegetables. Add carrots, potatoes (and celery if using) around the roast. Cover and bake 60 to 90 minutes more, until beef is fork-tender and vegetables are soft.
Rest and shred. Remove roast to a cutting board and rest 10 minutes, then shred or slice.
Thicken gravy (optional). Bring braising liquid to a simmer on the stove. Stir in cornstarch slurry and simmer 1 to 2 minutes until thickened.
Serve. Return beef to the pot, spoon gravy over everything, garnish with parsley, and serve warm.