Pat the beef cubes dry with paper towels. Toss with salt, pepper, and flour until lightly coated.
Heat oil in a skillet over medium-high heat. Sear beef in batches until a deep brown crust forms on all sides, about 3-4 minutes per side. Transfer to the slow cooker.
Pour a splash of beef broth into the hot skillet and scrape up browned bits. Pour this liquid over the beef in the slow cooker.
Add diced onion, minced garlic, carrots, celery, and potatoes to the slow cooker.
Stir in remaining beef broth, Worcestershire sauce, and tomato paste. Tuck thyme sprigs and bay leaf into the liquid.
Cover and cook on low for 7-8 hours or high for 4 hours, until the beef is fork-tender.
About 30 minutes before serving, whisk together cornstarch and cold water in a small bowl.
Stir the slurry into the stew. Cook on high for another 30 minutes until the sauce thickens and turns glossy.
Remove the bay leaf and thyme sprigs before serving.
Notes
Use beef chuck rather than leaner cuts, since its connective tissue is what breaks down into tender texture. For a deeper flavor, one cup of beef broth can be replaced with a dark stout. Leftovers keep refrigerated up to 4 days and taste even better the next day; also freezes well up to 3 months.