Preheat oven to 400°F.
Cook the veggie separately using the same pan without washing the pan in between. Start by heating 1 tablespoon of olive oil in a large skillet, over medium heat. Add the red onion and sauté until softened and translucent, 2-3 minutes; remove from skillet. Continue with the mushrooms and sauté for 5-6 minutes; remove from skillet. Then the sundried tomatoes with ¼ cup water, and cook for 3-4 minutes; remove from skillet. Add the garlic and sauté for 30 seconds; remove from skillet. Add the baby spinach and sauté until just wilted, about 1 minute. Set aside.
In a large bowl, combine the cream cheese, goat cheese (if using), sauteed red onions, and garlic. Set aside.
Remove the stems from 4 large portobello mushrooms and discard. Use a spoon to gently scrape out and discard the gills to make room for the filling. Wipe the mushrooms clean with a paper towel. Brush mushrooms on both sides with 2 tablespoons of olive oil and cook in the same skillet used to Sautee the other veggie. Cook on one side for 2-3 minutes, flip and season the mushrooms with salt and pepper and continue to cook the mushrooms for an additional 2-3 minutes. Transfer mushrooms to a wire rack over a sheet pan. Brush rack with remaining 1 tablespoon olive oil. Place the mushrooms on the rack. Divide the cheese mixture evenly among the mushroom caps. Add the mushrooms, sundried tomatoes, and spinach in layers. Finish with a sprinkle of mozzarella cheese, and Parmesan.
Bake the mushrooms until tender and the cheese just starts to melt, about 10 minutes. Enjoy!