For the marinade: Combine the onion, carrots, celery, garlic, bay leaves, and wine in a large bowl or container. Add the beef, cover, and let sit in the refrigerator overnight. (Cook's Note: This is a really important step, it makes a huge flavor difference.)
For the stew: Remove the beef from the marinade. Strain the veggies and bay leaves from the wine and discard, but reserving the wine.
Preheat the oven to 350 degrees F.
Coat a large, wide pan or Dutch oven with olive oil and bring to medium-high heat. Season the beef generously with salt and toss with flour. Add the flour-coated beef to the hot pan, but be sure not to crowd the pan, so you will need to work in batches.
Brown the meat well on all sides and remove from the pan to a sheet tray.
Add the bacon and cook until it gets brown and crispy. Toss in the onions, carrots, celery, and season with salt. Cook the mixture for 8 to10 minutes or until the mixture starts to soften and become very aromatic. Add in the garlic and cook for 2 to 3 more minutes. Add the tomato paste and cook for 1 to 2 minutes.
Add 2 cups reserved wine and the beef. Stir to combine and cook until the wine has reduced by 1/2. Add the beef stock to just cover the surface of the beef. Toss in the bay leaves and thyme bundle. Season with salt, if needed. Bring the liquid to a boil, cover the pot and put in the preheated oven.
Cook the beef 2 hours, checking occasionally to add more stock, if needed. During the last 30 minutes of cooking time, add the mushrooms, potatoes, and more stock, if needed.
Remove the pan from the oven, and skim off any excess grease from the surface of the stew. Serve with crusty bread to sop up all the sauce.