01 - Combine warm milk, sugar, and yeast in a large mixing bowl. Let stand for 5 minutes until mixture becomes foamy, indicating yeast activation.
02 - Whisk melted butter, egg, and salt into the yeast mixture. Gradually incorporate flour, mixing until a soft, slightly sticky dough forms.
03 - Turn dough onto lightly floured surface and knead for 5–7 minutes until smooth and elastic. Place in greased bowl, cover, and let rise in warm area for 1 hour until doubled in size.
04 - Heat olive oil in skillet over medium heat. Sauté chopped spinach until wilted, approximately 2 minutes. Press spinach in sieve or with paper towels to remove excess moisture.
05 - Combine sautéed spinach, diced ham, shredded cheese, green onions, black pepper, and garlic powder in bowl. Mix thoroughly until evenly distributed.
06 - Preheat oven to 350°F. Grease 9x13-inch baking dish with butter or cooking spray.
07 - Punch down risen dough and roll out on floured surface to 16x12-inch rectangle.
08 - Spread ham and spinach mixture evenly over dough, leaving ½-inch border around edges.
09 - Starting from long side, roll dough tightly into log. Cut into 12 equal slices using sharp knife or dough cutter.
10 - Arrange rolls cut-side up in prepared baking dish. Cover and let rise for 15–20 minutes until slightly puffed.
11 - Brush rolls generously with melted butter. Sprinkle grated Parmesan over top if desired.
12 - Bake for 25–30 minutes until rolls are golden brown and cooked through. Let cool in pan for 5 minutes before serving.