Preheat and prep: Heat your oven to 375°F (190°C). Lightly grease a 9x13-inch baking dish.
Boil the pasta: Cook pasta in salted water until just shy of al dente (about 1–2 minutes less than package directions). Drain and set aside.
Sauté the mushrooms: In a large skillet, heat olive oil over medium-high.
Add mushrooms and a pinch of salt. Cook, stirring occasionally, until they release liquid and brown, 6–8 minutes.
Add garlic and spinach: Reduce heat to medium. Add garlic to the mushrooms and cook 30 seconds.
Add spinach and cook until wilted. If using frozen spinach, stir in until warmed through.
Make the Alfredo base: In a separate pot, melt butter over medium heat. Whisk in flour and cook 1 minute to form a roux.
Build the sauce: Slowly whisk in milk, stirring constantly until smooth.
Bring to a gentle simmer and cook 2–3 minutes until slightly thickened.
Add cheese and season: Remove from heat. Stir in Parmesan, salt, pepper, red pepper flakes, and Italian seasoning. Adjust seasoning to taste.
Combine everything: In a large bowl, mix pasta, chicken, mushroom-spinach mixture, and about two-thirds of the mozzarella.
Pour over the Alfredo sauce and toss until evenly coated.
Assemble the casserole: Transfer to the prepared baking dish. Top with remaining mozzarella, a sprinkle of Parmesan, and panko if using.
Bake: Bake uncovered for 18–22 minutes, until bubbly around the edges and lightly golden on top.
Finish and serve: Let it rest 5–10 minutes so it sets up a bit. Garnish with chopped parsley and serve warm.