Pat the roast dry with paper towels and season all over with salt and pepper. Heat olive oil in a large skillet over medium-high heat. Sear the roast for 4-5 minutes per side, until a brown crust forms. Transfer the seared roast to your slow cooker.
Add the chopped onion, minced garlic, carrots, and celery to the slow cooker, arranging them around the roast.
In a medium bowl, whisk together the beef broth, red wine, Worcestershire sauce, soy sauce, thyme, and rosemary. Pour this liquid mixture over the beef and vegetables. Add the bay leaves.
Cover and cook on LOW for 6 to 8 hours, or on HIGH for 4 to 5 hours. The roast is done when it is tender enough to be easily pierced with a fork.
About 30 minutes before serving, prepare the gravy. In a small bowl, whisk the cornstarch and cold water together to form a smooth slurry.
Ladle about 1 cup of the hot cooking liquid from the slow cooker into a measuring cup. Slowly whisk the cornstarch slurry into the hot liquid until combined, then pour the mixture back into the slow cooker.
Stir gently to combine. Cover and cook on HIGH for another 20-30 minutes, or until the gravy has thickened to your liking.
Carefully remove the roast and vegetables to a serving platter. Let the beef rest for at least 3 minutes before slicing or shredding. A safe internal temperature for beef is 145°F (63°C).
Remove and discard the bay leaves from the gravy. Serve the sliced beef and vegetables with the warm gravy spooned over the top.