Preheat your oven to 375°F (190°C). Grease a baking dish with olive oil or cooking spray.
Cook the pasta according to the package instructions until al dente. Drain and set aside.
In a large skillet, heat olive oil over medium heat. Add diced onion and minced garlic, and sauté until fragrant and translucent.
Add the textured vegetable protein (TVP) or vegan ground meat substitute to the skillet and cook according to the package instructions.
Stir in the crushed tomatoes, tomato paste, dried basil, dried oregano, red pepper flakes (if using), salt, and pepper. Simmer for about 10 minutes to allow the flavors to meld together.
In a food processor or blender, combine the drained tofu, nutritional yeast, lemon juice, garlic powder, salt, and pepper. Blend until smooth and creamy, resembling the texture of ricotta cheese.
In a saucepan, melt the vegan butter over medium heat. Whisk in the flour until well combined, creating a roux.
Gradually whisk in the plant-based milk, ensuring there are no lumps. Cook the mixture, stirring constantly, until it thickens and comes to a simmer.
Remove the saucepan from heat and stir in the nutritional yeast, garlic powder, salt, and pepper. The bechamel sauce should be smooth and creamy.
In the prepared baking dish, spread a layer of cooked pasta. Top with a layer of the Vegan Meat Ragu, followed by dollops of the Vegan Ricotta. Repeat the layers until all the pasta, ragu, and ricotta are used, finishing with a layer of pasta on top.
Pour the Cheesy Bechamel sauce over the top layer of pasta, ensuring it covers the entire dish. Sprinkle with vegan mozzarella cheese, if desired.
Cover the baking dish with foil and bake in the preheated oven for 20 minutes. Then, remove the foil and bake for an additional 10 minutes until the cheese is melted and bubbly.
Remove from the oven and let it cool for a few minutes. Garnish with fresh basil leaves before serving.