Pat the beef cubes dry with paper towels and season generously with salt and pepper.
Heat olive oil in a large Dutch oven or heavy pot over medium-high heat. Brown the beef in batches, about 4-5 minutes per batch, then remove and set aside.
In the same pot, add the diced onion and cook for 5 minutes until softened, then add garlic and cook for 1 minute more.
Sprinkle flour over the onions and stir well, cooking for 2 minutes to remove the raw flour taste.
Add tomato paste and stir, then gradually pour in the beef broth and water, stirring constantly to prevent lumps.
Return the browned beef to the pot along with bay leaves and thyme. Bring to a boil, then reduce heat to low, cover, and simmer for 1 hour.
Add the carrots, potatoes, and parsnips to the pot. Continue simmering covered for another 45-60 minutes until vegetables are tender and beef is falling apart.
Remove bay leaves, taste and adjust seasonings as needed, then serve hot with crusty bread.