Pat and season the beef: Dry the beef with paper towels so it browns well. Season generously with salt and pepper, then toss with 2 tablespoons flour to lightly coat.
Brown in batches: Heat oil in a heavy pot or Dutch oven over medium-high.
Sear the beef in batches, turning until browned on most sides, about 6–8 minutes per batch. Don’t crowd the pan. Transfer browned beef to a plate.
Soften aromatics: Reduce heat to medium.
Add onion with a pinch of salt and cook 4–5 minutes until translucent. Stir in garlic for 30 seconds until fragrant.
Tomato paste boost: Add tomato paste and cook 1–2 minutes, stirring, until it darkens slightly. This step adds sweetness and depth.
Deglaze: Pour in the red wine (if using).
Scrape up brown bits from the bottom—those are pure flavor. Let it simmer 2–3 minutes to reduce by about half.
Build the stew base: Return beef and any juices to the pot. Add beef broth, Worcestershire sauce, bay leaves, thyme, and rosemary.
Bring to a gentle boil, then reduce to a low simmer.
Simmer low and slow: Cover partially and cook 60 minutes, stirring occasionally. Keep the simmer gentle so the beef becomes tender without drying out.
Add hearty veggies: Stir in carrots and potatoes. Continue simmering 30–40 more minutes, uncovered, until the vegetables are tender and the beef shreds easily with a fork.
Adjust thickness: If you like a thicker stew, mix 1 tablespoon cornstarch with 1 tablespoon water and stir into the pot.
Simmer 5 minutes. Or sprinkle in 1 tablespoon flour and whisk well to avoid lumps.
Finish and season: Stir in peas and cook 2–3 minutes. Remove bay leaves.
Taste and adjust salt and pepper. A splash more Worcestershire or a squeeze of lemon can brighten the flavor at the end.
Serve: Ladle into bowls and top with chopped parsley. Serve with crusty bread or over buttered noodles if you want extra comfort.