Heat a non-stick skillet over medium heat. While the skillet is warming, spread softened butter on one side of each slice of bread.
Place one slice of bread, butter side down, in the skillet.
In a small bowl, whisk the eggs with a pinch of salt and pepper. Pour the eggs into the skillet, allowing them to cook for about 1-2 minutes until they begin to set.
Sprinkle the cheddar and mozzarella cheese evenly over the eggs. If using bacon or ham, add it on top of the cheese.
Top with the second slice of bread, butter side up. Cook for another 2-3 minutes until the bottom slice is golden brown.
Carefully flip the sandwich using a spatula and cook for an additional 2-3 minutes until the other side is golden and the cheese is melted.
Remove from the skillet and let it cool for a minute. Cut in half and garnish with fresh herbs if desired.