In a large Dutch oven or heavy pot, heat the olive oil over medium-high heat. Add the beef cubes in batches, browning them on all sides. Remove the beef and set aside.
In the same pot, add the chopped onion and cook until translucent, about 5 minutes. Stir in the garlic and cook for another minute.
Add the carrots, celery, and mushrooms to the pot. Cook for about 5-7 minutes, stirring occasionally, until the vegetables begin to soften.
Return the browned beef to the pot. Pour in the red wine and beef broth, then stir in the tomato paste, thyme, rosemary, and bay leaves. Season with salt and pepper.
Bring the stew to a boil, then reduce the heat to low. Cover and simmer for 2 to 2.5 hours, or until the beef is tender.
If you prefer a thicker stew, mix the flour with a little water to create a slurry and stir it into the stew during the last 15 minutes of cooking.
Remove the bay leaves before serving. Garnish with fresh parsley and serve hot with crusty bread or over mashed potatoes.