Bring a large pot of water to a boil. Add 1 tbsp salt, then add the spaghetti. Cook the spaghetti until just al dente (it will cook more in the oven). Drain and set aside.
In a large skillet, brown the ground beef with diced onion and green bell pepper then add the garlic. Cook until beef is browned and onions are soft, breaking the meat into small pieces.
Season the beef with Italian seasoning, smoked paprika, salt, and pepper. Pour in the marinara sauce and stir well. Let it simmer 10-15 minutes while you prep the alfredo sauce.
In a medium saucepan over medium heat, melt 4 tbsp butter. Add the minced garlic and sautee for about 1 minute until fragrant but not browned.
Reduce heat to medium-low. Slowly add the heavy cream, whisking constantly so it stays smooth. Season with salt, pepper, Italian seasoning, and pinch of nutmeg and let it gently simmer for about 2-3 minutes.
Add parmesan (and mozzarella if using) a little at a time, stirring until melted.
Combine the cooked spaghetti noodles with the alfredo sauce making sure that all the noodles are coated with the sauce.
Transfer the spaghetti alfredo to a 9x13 baking dish then spoon the entire meat sauce mixture evenly over the noodles.
Evenly sprinkle shredded mozzarella cheese on top and bake Bake at 350°F for 30–35 minutes. Let the casserole rest for 10 minutes before cutting.