Melt the butter in a non-stick pan over medium-low heat.
Layer the bread with cheese, spinach, and tomatoes seasoned with salt and pepper, ham, onions, more cheese, and another bread slice. Place the sandwich in the pan.
Cover with a lid (watch the heat, make sure the bread isn't burning). When the bread is nicely grilled to golden brown, flip to the other side until the cheese is melted and the bread is golden brown.