First, we want to get your filling ready. Heat butter in a small frying pan over medium heat. Add onions and mushrooms and saute until onions become clear. Add spinach and tomatoes. When spinach has wilted, remove from heat and cover with lid or foil to keep warm.
Crack the eggs into a mixing bowl and whisk until eggs become light yellow in color. Set aside. Pour oil into In an 8" pan (you don't want to do a smaller pan or the eggs won't cook as well) and swirl around until pan in evenly coated with oil. Put pan on the stove over medium-low heat.
While oil is heating quickly add water, salt, and pepper to the eggs and beat vigorously until the eggs become light and airy. When the oil becomes wavy and hot, slowly pour the eggs into the pan. Once the eggs are in the pan, do not stir! Let them just sit and start to bubble up a little bit.
When the bottom of the eggs begin to set a little bit, use heat-resistant rubber spatula to gently push one edge of the egg into the center of the pan, while tilting the pan to allow the still liquid egg to flow in underneath. Repeat with the other edges, until there's no liquid left.
Your eggs should now resemble a bright yellow pancake, which should easily slide around on the nonstick surface. If it sticks at all, loosen it with your spatula.
Now gently flip the egg pancake over, using your spatula to ease it over if necessary. Cook for another few seconds, or until there is no uncooked egg left. DO NOT OVERCOOK!
Stir cheese and toppings together and spoon down center of the omelet in a line (adding more cheese to the top if you like it extra cheesy). Quickly fold one side of the omelet over the toppings and then do the same with the other side (as if you were folding a piece of paper into thirds).. you may also just fold the omelet straight over (as if folding a piece of paper in half). You may keep the omelet in the pan until the cheese is melted (flipping over if necessary).. just be sure you don't overcook the eggs-- you don't want them to be crispy and brown!
Top with additional toppings, hollandaise sauce (click here), salsa, sour cream.. etc...