Pat the beef cubes completely dry with paper towels. In a large bowl, mix together the flour, salt, pepper, and paprika. Add the beef cubes to the flour mixture and toss until evenly coated, then shake off excess flour and set aside on a plate.
Heat 1 tablespoon of olive oil in your Dutch oven over medium-high heat until shimmering. Working in 3 batches to avoid crowding, add beef cubes in a single layer and sear undisturbed for 3-4 minutes until deeply browned. Turn each piece to brown all sides (8-10 minutes total per batch), then transfer to a plate. Add 1 tablespoon fresh oil for each new batch.
In the same pot (don't wipe it out), add diced onions and cook for 5-6 minutes until softened and golden. Add minced garlic and cook for 1 minute until fragrant. Stir in tomato paste and cook for 2-3 minutes, stirring frequently, until it darkens to a deep rust color.
Pour in the red wine and use a wooden spoon to scrape up all the browned bits from the bottom of the pot. Let the wine simmer for 3-4 minutes to cook off the alcohol and reduce slightly. Add the beef broth, Worcestershire sauce, bay leaves, thyme, and rosemary. Return all the browned beef and accumulated juices to the pot, then bring to a gentle boil.
Reduce heat to low and cover the pot with the lid slightly ajar. Let simmer gently for 1.5 hours, stirring every 30 minutes. The beef should be getting tender but won't be fall-apart yet.
Add the carrots, celery, potatoes, and mushrooms to the pot and stir gently to combine. Cover again and continue simmering for another 45-60 minutes until the vegetables are fork-tender and the beef is incredibly tender.
Remove and discard the bay leaves, thyme sprigs, and rosemary sprig. Stir in the frozen peas and let warm through for 2-3 minutes. Taste the broth and adjust seasoning with additional salt and pepper if needed. If the stew is too thin, simmer uncovered for 10-15 minutes to thicken. Ladle into bowls, garnish with fresh parsley, and serve immediately.