Start by infusing the milk for the bechamel sauce; combine the milk, studded onion, black peppercorns and bay leaf in a large saucepan. Bring to the boil, then remove from the heat and allow to infuse.
Heat the olive oil in a large, heavy-based saucepan over a moderate heat. Saute the onion, carrot, celery and bay leaf, stirring occasionally for 5-6 minutes until softened. Add the garlic and continue to saute for 2-3 minutes, stirring from time to time. Add the white wine, increase the heat and cook until the liquid has evaporated away almost entirely. Reduce the heat then add the chopped tomatoes and mushrooms to the pan. Simmer for 5 minutes, then stir in the spinach and season to taste. Remove from the heat and set to one side until later.
Prepare the bechamel sauce by melting the butter in a large saucepan over a medium heat. Whisk in the flour until you have a smooth roux and cook, whisking occasionally for 2 minutes. Whisk in the infused milk in a slow, steady stream until you have a thickened sauce. Simmer over a gentle heat for 8-10 minutes, stirring occasionally. Season to taste then set to one side.
Pre-heat the oven to 200°C.
Spread a little of the bechamel sauce onto the base of a 34cm x 20cm x 7cm ceramic baking dish. Arrange sheets of the lasagne evenly across the base, then top with some of the vegetable mixture. Top that with more of the bechamel sauce, then top with more lasagne sheets. Repeat this cycle until you have a layer of lasagne sheets at the top of the dish.
Spread the last of the bechamel sauce on top of the lasagne sheets and bake for 40-45 minutes until the pasta is cooked and the top is golden brown in colour. Remove and allow to stand for 5 minutes before cutting into square portions and serving on plates.
Freezing and defrosting instructions
For this recipe, freeze raw and cook fresh. Defrost at room temperature for 1 hour and then bake for 45 minutes or until golden brown.