Pat the beef chuck dry with paper towels. Toss in flour, 1 tsp salt, and black pepper until evenly coated. Shake off excess.
Heat 2 tbsp oil in a large Dutch oven over high heat until shimmering. Sear the beef in two batches for 3 to 4 minutes per side until deeply browned. Transfer to a plate.
Reduce heat to medium. Add remaining 1 tbsp oil and cook the onion for 5 to 6 minutes until softened and edges are barely beginning to color.
Add garlic and tomato paste. Cook for 2 minutes, stirring constantly, until the paste darkens to a deep brick color.
Pour in 250 ml of stock and scrape up all the browned bits from the base of the pot. Cook for 1 minute.
Add remaining stock, water, Worcestershire sauce, paprika, ½ tsp salt, thyme, and bay leaves. Stir to combine.
Return the seared beef to the pot. Bring to a boil, reduce heat to low, cover, and simmer for 1 hour.
Add carrots, potatoes, and celery. Cover and continue simmering for 45 to 50 minutes, until vegetables are fork-tender and beef pulls apart with two forks.
Remove thyme sprigs and bay leaves. Stir in cornstarch slurry if needed and simmer uncovered for 5 minutes until gravy thickens. Taste and adjust salt. Serve garnished with fresh parsley.