To make the meat sauce, place the onion and garlic in a food processor and pulse to finely chop. Heat the olive oil in a heavy-bottomed saucepan or Dutch oven over medium heat. Add the onion and garlic and season with salt and pepper. Cook for 12-15 minutes until beginning to brown, stirring frequently.
Add the beef to the pot and season with salt and pepper. Cook for 15 minutes until browned. Stir in the tomato paste and cook for 2-3 minutes. Add the red wine to the pan and cook for 5 more minutes.
Add the tomato sauce, bay leaf, and thyme to the pan. Bring to a simmer, and then add 1/2 cup water. Cook at a low simmer for 1 hour, stirring occasionally and adding more water if necessary. Adjust seasonings to taste. Discard the bay leaf and thyme.
Preheat the oven to 350 degrees F. Sprinkle the eggplant with salt and set aside for 15 minutes to drain. Rinse and pat dry. Heat one tablespoon of olive oil in a skillet over medium heat. Cook the eggplant for 2-3 minutes per side until golden.
Layer the lasagna in a baking dish. Start by layering the yellow squash as the base. Add one third of the meat sauce on top of that, then lay the eggplant slices, fresh basil, and mushrooms. Next add the rest of the meat sauce, then the spinach, zucchini, and finally drizzle with olive oil and sprinkle with salt and pepper. Bake for 40-45 minutes.
While the lasagna is baking, place the cauliflower in a blender and process until it reaches a rice-like consistency. Add to a skillet and sauté with the olive oil, garlic powder, salt, and pepper over medium heat. Cook for 6-8 minutes until soft, adding a tablespoon of water if necessary. After the lasagna has cooked for 20 minutes, sprinkle with the cauliflower and return to the oven for the remaining cooking time. Serve hot.