Chop the onion, garlic, herbs, and mushrooms, and grate the cheese.
Bring a large pot of salted water to a boil and cook rigatoni until al dente. Reserve 1 cup pasta water, then drain.
Heat olive oil or butter in a large pan over medium heat.
Sauté onion and garlic until soft and fragrant.
Add mushrooms or protein and cook until browned.
Pour in stock or pasta water and let it reduce slightly.
Add heavy cream and Parmesan cheese, stirring gently until thick and glossy.
Season with salt, black pepper, herbs, and lemon zest if using.
Add cooked rigatoni to the sauce and toss until fully coated, using pasta water as needed.
Transfer to a baking dish, top with mozzarella and extra Parmesan, and bake at 350°F (175°C) for 15–20 minutes until bubbly.