Add water to a pot and start heating it up. This way it can be at a boil and ready for the noodles as you are preparing the beef and tomato mixture.
Heat the oil in your cast-iron skillet over medium heat. Add in your onions and garlic and sauté until they are translucent and aromatic.
Now add in your ground beef and start the browning process.
While the beef is browning, check to see if the water is boiling yet. Once the water is boiling add in your spaghetti noodles and cook according to the instructions on the package.
Go back to your ground beef that should be starting to brown and add in the basil, parsley, oregano, and red pepper flakes.
Preheat the oven to 350° F
When the ground beef is completely browned pour in your tomato sauce and crushed tomatoes. Continue cooking for another 15-20 minutes until it thickens a bit and add your salt and pepper to taste.
When the noodles are done, drain them and add them to the skillet. Carefully mix together.
Sprinkle the cheeses over top of the spaghetti and transfer to the oven for an additional 10 minutes until the cheese is melted.
Remove from the oven, serve and enjoy.