Prep the beef. Pat the beef dry with paper towels and season generously with salt and pepper. Toss lightly with 2 tablespoons flour to coat. This helps with browning and gives the stew body.
Sear in batches. Heat the oil in a large heavy pot or Dutch oven over medium-high.
Brown the beef on two sides, working in batches to avoid crowding. Transfer browned beef to a plate and repeat with remaining meat.
Sauté the aromatics. Reduce heat to medium. Add onion and celery to the pot with a pinch of salt.
Cook 4–5 minutes until softened, scraping up browned bits. Stir in garlic and cook 30 seconds until fragrant.
Build the base. Add tomato paste and cook, stirring, for 1 minute to caramelize it. Pour in the red wine (if using) and simmer 2–3 minutes to reduce by about half, scraping the bottom of the pot.
Add liquids and seasonings. Return the beef and any juices to the pot.
Add beef broth, bay leaf, thyme, rosemary, and Worcestershire sauce. Bring to a gentle boil.
Simmer low and slow. Reduce to a low simmer, cover, and cook for 60 minutes, stirring occasionally. You want a steady but gentle bubble so the beef tenderizes without toughening.
Add vegetables. Stir in carrots and potatoes.
Cover and continue to simmer 30–40 minutes, or until the beef is fork-tender and the vegetables are soft but not falling apart.
Adjust thickness. If you prefer a thicker stew, mash a few potato pieces against the side of the pot and stir them in, or whisk 1 tablespoon flour with 2 tablespoons water and stir into the stew. Simmer 5 minutes to thicken.
Finish and season. Stir in the frozen peas and cook 2–3 minutes. Taste and season with more salt and pepper as needed.
Remove the bay leaf.
Serve. Ladle into bowls and garnish with chopped parsley. Serve with crusty bread, buttered noodles, or over mashed potatoes.