01 - In a large bowl, combine warm milk, sugar, and yeast. Let stand for 5 minutes until foamy.
02 - Add melted butter, egg, and salt to the yeast mixture. Gradually incorporate flour until a soft, slightly sticky dough forms.
03 - Knead dough on a lightly floured surface for 5–7 minutes until smooth and elastic. Place in a greased bowl, cover, and let rise in a warm place for 1 hour until doubled in size.
04 - Heat olive oil in a skillet over medium heat. Sauté spinach until wilted, about 2 minutes. Remove excess moisture by pressing spinach in a sieve or with paper towels.
05 - In a bowl, mix sautéed spinach, diced ham, shredded cheese, green onions, black pepper, and garlic powder until well combined.
06 - Preheat oven to 350°F. Grease a 9x13-inch baking dish.
07 - Punch down risen dough and roll out on a floured surface to a 16x12-inch rectangle.
08 - Spread the ham and spinach filling evenly over the dough, leaving a ½-inch border.
09 - Starting from the long side, tightly roll up the dough into a log. Cut into 12 equal slices.
10 - Arrange rolls cut-side up in the prepared baking dish. Cover and let rise for 15–20 minutes.
11 - Brush rolls with melted butter. Sprinkle with Parmesan if desired.
12 - Bake for 25–30 minutes until golden brown and cooked through.
13 - Let cool for 5 minutes before serving.