
Preheat the oven to 375°F.
Bring a large pot of water to a boil over high heat. Season it with salt.
Place the butter in a large saucepan over medium heat. Once it has melted, add the onion and garlic and cook for 3 minutes. Add the flour and cook for 3 more minutes, whisking constantly. Whisk in the broth, milk, salt, pepper, and basil. Bring the mixture to a simmer and cook, whisking frequently, for about 5 minutes, until thickened. Add the parmesan and cook, whisking constantly, for about 1 minute, until it melts into the sauce. Remove from the heat.
Place the spinach on a lint-free kitchen towel or a large piece of cheesecloth and squeeze out as much liquid as possible.
Combine the drained spinach, ricotta cheese, mozzarella, parmesan, parsley, salt, basil, pepper, and egg in a medium bowl. Stir well to combine.
Cook the lasagna noodles according to the package instructions. Drain and rinse them under cold water.
Pour ½ cup of the cream sauce on the bottom of a 9x13-inch baking dish. Place 3 noodles side-by-side to cover the whole base of the dish. Spread half of the ricotta mixture over noodles. Place half of the chicken evenly over the ricotta mixture, then pour one third of the cream sauce over the chicken. Repeat by placing 3 noodles side-by-side in the dish and spreading the remaining ricotta mixture over noodles. Add the remaining chicken and one third of the cream sauce over the chicken. Top with the remaining 3 noodles and the remaining cream sauce. Sprinkle the top with the mozzarella.
Cover the dish with foil and bake for 25 minutes. Uncover, and continue baking for 20 minutes. For a golden brown top, broil on high for 2 to 3 more minutes. Let the lasagna sit for at least 15 minutes before serving.