Cut the courgettes, onion and garlic in thin slices. Place them in a bowl, add the olive oil and herbs and mix well.
Spread the veggies on a baking tray on a single layer (you might need two trays) and bake in a preheated oven at 180°C for approximately 20 minutes.
To make the ricotta, add all the ingredient in a food processor and blend for few seconds.
To make the bechamel, in a saucepan on a medium heat, add the butter, and once it has melted add the flour.
Use a whisk to incorporate it well into the butter, and use a silicon spatula to scrape anything that is stack on the sides of the pan.
Gradually add the milk, while whisking constantly to get rid of any lumps that might appear.
The bechamel is ready when is silky smooth. Add the remaining ingredients, mix to combine and remove from the heat.
In a shallow bowl, add some hot water, and soak the lasagna sheets in batches, for a couple of seconds.
To assemble, in the bottom of a (26cm x 16cm) baking dish, spread the olive oil and 1 tablespoon of pesto.
Then add a layer of lasagna sheets, spread 1/3 of the tofu ricotta, add 1/3 of the veggies, followed by a layer of fresh spinach, 1/4 of the bechamel sauce and 1 tablespoon of pesto. Repeat this for 2 more times, so that we have 3 layers in total.
To finish it, cover it with a layer of lasagna sheets, the remaining bechamel and pesto and the shredded vegan cheese.
Bake in a preheated oven at 190°C for approximately 30 minutes.
Let it rest 30 minutes, before you cut a slice.