Whisk the Eggs: Crack the eggs into a mixing bowl. Add the milk, salt, and black pepper, then whisk until the mixture is smooth and evenly combined. Set aside while preparing the filling.
Sauté the Onion: Melt half the butter in a nonstick frying pan over medium heat. Add the chopped onion and cook for 2–3 minutes, stirring occasionally, until softened.
Add the Garlic and Spinach: Stir in the minced garlic and cook for about 30 seconds. Add the chopped spinach and cook for 1–2 minutes, until wilted and most of the excess moisture has evaporated.
Set Aside the Filling: Transfer the spinach mixture to a small bowl. Wipe the pan clean if needed, then return it to the stove.
Cook the Eggs: Add the remaining butter to the pan over medium-low heat. Once melted, pour in the egg mixture. Let it begin to set, then gently push the cooked edges toward the center with a spatula, allowing the uncooked egg to flow underneath.
Add the Spinach and Cheese: When the eggs are mostly set but still slightly moist on top, spread the spinach mixture over one half of the omelette. Sprinkle the shredded Gruyère or Swiss cheese evenly over the filling.
Fold the Omelette: Carefully fold the empty half over the filling using a spatula. Cook for another 30–60 seconds, until the cheese begins to melt and the eggs are fully set.
Garnish and Serve: Slide the omelette onto a plate and sprinkle with fresh parsley if desired. Serve immediately while warm and tender.