Pat and season the beef. Dry the beef cubes with paper towels so they sear well.
Season generously with salt and pepper on all sides.
Sear in batches. Heat the oil in a heavy pot or Dutch oven over medium-high. Brown the beef in a single layer without crowding, 2–3 minutes per side. Transfer browned pieces to a plate and repeat. Don’t skip this step; it builds deep flavor.
Sauté the aromatics. Lower the heat to medium.
Add the onion and a pinch of salt. Cook 5–7 minutes until softened and lightly golden. Stir in the garlic and tomato paste, cooking 1–2 minutes until the paste darkens slightly.
Deglaze with wine. Pour in the red wine, scraping up any browned bits from the bottom.
Simmer 2–3 minutes to reduce slightly. If skipping wine, use a splash of stock instead.
Add stock and seasonings. Return the beef and any juices to the pot. Add beef stock, bay leaves, thyme, rosemary, and Worcestershire sauce.
Bring to a gentle simmer.
Slow cook the base. Cover and cook on low heat, barely bubbling, for about 1 hour. This gives the beef a head start before adding the vegetables.
Add the root vegetables. Stir in carrots, parsnips, potatoes, and celery. Cover and simmer another 45–60 minutes, or until the beef is very tender and the vegetables are cooked through.
Adjust thickness. If you like a thicker stew, whisk cornstarch with 2 tablespoons cold water to make a slurry.
Stir it into the pot and simmer 5 minutes until slightly thickened. Alternatively, mash a few potato pieces right in the pot for natural thickening.
Taste and finish. Remove bay leaves. Taste and adjust salt and pepper.
Sprinkle with chopped parsley just before serving for a bright, fresh note.