Prepare the noodles. If using dried lasagna noodles, cook them according to the package directions in generously salted water until about 5 minutes less than al dente. Drain and arrange the noodles in a single layer on a lightly oiled baking sheet to prevent sticking. Skip this step if using ready-to-bake noodles.
Start the sauce. Heat a large saucepan over medium-high heat. Add the olive oil, followed by the diced onion and minced garlic. Cook for 1–2 minutes, stirring occasionally, until the onion begins to soften.
Cook the mushrooms. Add the sliced mushrooms and cook for 4–5 minutes, stirring occasionally, until the onion is translucent and the mushrooms have softened and reduced in size.
Season well. Add kosher salt and black pepper to taste. Start with about 1 teaspoon of kosher salt, then adjust later.
Add the flour. Sprinkle the flour over the mushroom mixture and stir thoroughly. Cook for about 30 seconds so the flour loses its raw taste.
Add the stock. Slowly pour in the vegetable stock while stirring continuously. This helps prevent lumps from forming. Bring the mixture to a gentle simmer and cook for 8–10 minutes, stirring occasionally, until the sauce begins to thicken.
Make it creamy. Stir in the heavy cream and return the sauce to a simmer. Cook for another 8–10 minutes, stirring occasionally, until the sauce is creamy and thick enough to coat the back of a spoon.
Add spinach and Parmesan. Remove the saucepan from the heat. Add the fresh spinach and two-thirds of the Parmesan cheese. Stir until the spinach wilts and the cheese melts into the sauce. Taste and adjust the salt and pepper.
Assemble the lasagna. Heat the oven to 375°F if baking immediately. Spread a thin layer of mushroom sauce over the bottom of a medium baking dish, approximately 8 x 10 inches.
Add a layer of lasagna noodles, followed by several ladlefuls of mushroom and spinach sauce and a layer of mozzarella. Continue layering until the noodles and sauce are used.
Finish the top. Add the remaining mozzarella and sprinkle the reserved Parmesan evenly over the top.
Bake. Bake for 30–40 minutes, or until the cheese is melted and the edges are lightly browned.
Rest and serve. Allow the lasagna to cool for about 10 minutes before slicing. Garnish with fresh parsley and serve warm.