Prepare the egg mixture: In a medium bowl, crack the eggs and whisk them together with milk, salt, and pepper until the mixture is smooth and slightly frothy. This ensures your omelette will be fluffy and light. Set aside while you prepare the vegetables.
Cook the vegetables: Heat 1 tablespoon of butter or olive oil in a non-stick skillet over medium heat. Add the chopped onion and sauté for 2–3 minutes until soft and translucent. Add the garlic and cook for another 30 seconds, just until fragrant. Add the sliced mushrooms and cook for 4–5 minutes, stirring occasionally, until the mushrooms release their moisture and begin to brown. Finally, add the spinach and cook for 1–2 minutes until wilted. Season the mixture lightly with salt and pepper. Transfer the cooked vegetables to a plate and set aside.
Cook the omelette base: Wipe the skillet clean and heat the remaining butter over medium-low heat. Pour in the egg mixture, tilting the pan to ensure the eggs spread evenly. Allow the eggs to cook gently, undisturbed, for 1–2 minutes until they begin to set around the edges but are still slightly runny on top.
Add filling and cheese: Spoon the sautéed mushroom and spinach mixture evenly over one half of the omelette. Sprinkle the shredded cheese over the vegetables. Continue cooking for another 1–2 minutes, gently lifting the edges of the omelette with a spatula to let uncooked eggs flow underneath, ensuring even cooking.
Fold and finish: Carefully fold the omelette in half over the filling. Let it cook for an additional 1–2 minutes to allow the cheese to melt and the omelette to fully set. Slide the omelette onto a serving plate, garnish with fresh herbs if desired, and serve immediately while warm and fluffy.