Heat olive oil in a large pot over medium heat. Add the diced onion and sauté until it softens and turns translucent. This gives a rich, savory base to the pasta.
Add diced chicken to the pot and season with salt and pepper. Cook until golden on the outside and no longer pink inside. Stir in the garlic and cook for about a minute until fragrant, making sure not to burn it.
Pour in chicken broth and milk, then add the uncooked pasta. Stir well and bring to a gentle boil. Once boiling, reduce the heat, cover the pot, and let it simmer for about 15–20 minutes, stirring occasionally so the pasta cooks evenly.
Once the pasta is cooked, stir in the cream cheese until melted. Add mozzarella, Parmesan, and fresh spinach. Mix everything together until the cheese is melted and the spinach wilts into the sauce.
Serve the pasta hot straight from the pot. For presentation, sprinkle extra Parmesan or fresh parsley on top. Each bite is creamy, cheesy, and absolutely delicious.