Cook pasta until mostly done, drain and set aside in a large mixing bowl.
While pasta is cooking, cook chicken in a cooking pan, over medium heat with a little bit of vegetable oil, salt and pepper. Once it's done, take out and set aside until it cools enough to handle.
In the same pan as you cooked chicken, add diced bacon and raise heat to medium-high. Cook bacon bits until deep golden and all fat is cooked.
Add sliced onion and mushrooms to the pan with bacon. Mix and cook until mushrooms are cooked. Drain off some of the fat and add bacon, mushrooms and onions to the bowl with pasta.
Preheat oven to 350℉ and grease a 9x13 casserole dish.
Cube chicken and add it to the bowl with pasta.
In the pot where you cooked pasta, you can cook Alfredo sauce.
Melt butter in the pot over medium heat. Add pressed garlic and saute until fragrant (just a few seconds). Whisk in flour and slowly pour in heavy cream WHILE whisking constantly (I suggest using a silicone covered whisk). Heat through over medium heat, keep stirring slowly.
Add sour cream, Parmesan cheeses, salt and pepper. Keep cooking on medium-low heat for about 5-7 minutes, stirring often.
Pour Alfredo sauce into the pasta bowl and mix everything until all evenly incorporated.
Transfer into the casserole dish and spread Mozzarella cheese over the top.
Bake for 15 minutes.
Notes
Storing: make sure to let the casserole cool down completely to room temperature prior to storing. Feel free to store this pasta casserole in the same dish you baked it. Cover it airtight with plastic wrap, foil, or a fitted lid. Keep in the refrigerator for 3-4 days.
Reheating: You canreheat individual portions in the microwave, in 30-40 second increments, and mixing in between. Heat just until heated through. Or, reheat the entire casserole in the oven at 350°F. Cover the casserole dish with foil when reheating so it doesn’t dry out. Note that you may need to add a little milk to reinvigorate the pasta because pasta likes to "drink" the sauce.