Heat olive oil in a Dutch oven (or any other heavy bottom pot) in medium heat. Add onion and chili pepper. Cook until wilted, 8-10 minutes.
Stir in the tomatoes and tomato paste. Cook, stirring frequently for 5 minutes.
Add in the ground beef. Using a wooden spoon break it into smaller chunks. Cook, stirring frequently, until it is browned, 7-8 minutes.
Stir in the mushrooms and cook for 5 more minutes.
Add the garlic, bundle thyme, salt, pepper, bay leaf, red wine, and chicken stock. Give everything a stir. Bring it to a simmer.
Reduce the heat to medium-low, put the lid on, and let it to cook for 20-25 minutes, making sure to stir occasionally.
Meanwhile, bring a large pot of salted water to boil and cook the spaghetti according to the instructions on its package.
Once the spaghetti is ready, drain it in a colander.
Discard the thyme bundle and the bay leaf from the Bolognese sauce.
Add drained pasta into the sauce. Stir it all together making sure that the pasta is generously coated with the sauce.
Stir in the fresh basil and top it off with grated Parmesan cheese.