Cook spaghetti to al dente, drain and pour into a 9 x 13 or larger glass dish and stir in a few pats of butter to prevent from sticking.
Alfredo Sauce
In the same pot the spaghetti was cooked in add butter, turn to medium heat.
Stir in flour and keep stirring until it turns lightly brown.
Add heavy cream 1/4 cup at a time and stir allowing each batch to warm up before adding more.
Bring to a simmer and stir in garlic and parmesan cheese.
Then stir in mozzarella cheese.
Add cooked spaghetti to the pot of alfredo sauce and stir it all together. Pour alfredo spaghetti back in the baking dish.
Meat Sauce
Cook ground beef, drain and set aside on paper towels.
Add onions to skillet on medium heat. Stir a few times until they are shinny and getting tender.
Add sauce and meat to the skillet. Stir well, cover and simmer on low for 10 - 20 minutes.
Pour meat sauce over top of the layer of spaghett.
Sprinkle Parmesan and mozzarella cheese on top and bake in a preheated 350°F oven covered with foil for 15 minutes and then uncovered for 10 - 15 minutes until cheese bubbles and begins to get lightly brown around the edges.