Preheat your oven to 180°C (350°F).
Cook the lasagna noodles according to the package instructions until al dente. Drain and set aside.
In a large frying pan, heat olive oil over medium heat. Add chopped onion and cook until translucent, about 5 minutes. Then add minced garlic and cook for another minute.
Add the sliced mushrooms to the pan and cook until they are soft and browned, approximately 8-10 minutes. Season with salt, black pepper, and dried Italian herbs.
Add fresh spinach to the mushrooms and stir until wilted. Remove from heat and let cool slightly.
In a mixing bowl, combine ricotta cheese with a pinch of salt, black pepper, and nutmeg. Stir in the mushroom and spinach mixture.
In a saucepan, melt butter over medium heat. Whisk in flour to create a roux, stirring for about 1 minute. Gradually add milk, whisking constantly until the mixture thickens. Season with salt and black pepper. Set aside.
In a baking dish, spread a thin layer of the béchamel sauce on the bottom. Place 3 lasagna sheets on top.
Layer half of the spinach and mushroom mixture over the noodles, followed by half of the mozzarella cheese. Add another layer of béchamel sauce.
Repeat the layering process with 3 more sheets of lasagna, the remaining spinach and mushroom mixture, another half of the mozzarella cheese, and more béchamel sauce. Top with the last 3 sheets of lasagna, covering them with the remaining béchamel sauce and grated Parmesan cheese.
Cover the baking dish with foil and bake in the preheated oven for 30 minutes. Remove the foil and bake for an additional 15 minutes until the top is golden and bubbly.
Let the lasagna rest for about 10 minutes before slicing and serving.