Crack the eggs into a large mixing bowl. Whisk until the yolks are broken, yellow and bubbly. Add in the salt, pepper and cheese and mix to combine.
Melt 1 tablespoon of butter in a 12 inch oven safe or cast iron skillet. Add in the onion and cook and stir for 2-3 minutes until soft.
Add the ham to the pan and cook until heated through and browned.
Add the last tablespoon of butter to the pan. Pour the egg and cheese mixture to the pan. Using a spatula scrape the cooked eggs in from the edges to the center of the pan for another minute. The egg won't be cooked all the way through at this point.
Place the pan into the oven and bake for 25-30 minutes until cooked through.