Prep the eggs: Crack eggs into a bowl. Add a pinch of salt and pepper.
Whisk until fully blended and slightly frothy for a tender omelette.
Cook the mushrooms: Heat a nonstick skillet over medium heat. Add oil or butter, then the mushrooms (and onion if using). Cook 3–4 minutes until browned and most moisture is gone.
Season lightly with salt, pepper, and garlic if desired.
Wilt the spinach: Add spinach to the pan and cook 30–60 seconds until just wilted. Transfer the mushroom-spinach mixture to a small plate. Wipe or lightly re-grease the pan if needed.
Pour the eggs: Return the pan to medium-low heat.
Add a tiny bit of oil or butter, then pour in the eggs. Swirl to coat the surface evenly.
Gently set the eggs: As the edges firm up, use a spatula to pull cooked egg toward the center, tilting the pan so uncooked egg flows to the edges. Keep heat moderate to avoid browning.
Add the filling: When the top is slightly glossy but mostly set, sprinkle cheese on one half.
Spoon the mushroom-spinach mixture over the cheese. Dot with cottage cheese or Greek yogurt if using.
Fold and finish: Use a spatula to fold the empty half over the filling. Cook another 30–60 seconds until the cheese melts and the center is set but still tender.
Serve: Slide onto a plate.
Top with fresh herbs and a crack of pepper. Enjoy immediately.