In a small saucepan, warm the whole milk until it’s just warm to the touch (around 110°F). Remove it from heat and sprinkle the active dry yeast over the milk. Allow it to sit for about 5-10 minutes until it becomes foamy.
In a large mixing bowl, combine 4 1/4 cups all-purpose flour, granulated sugar, and salt. Whisk together until well combined.
In another bowl, whisk together the melted butter, eggs, and the foamy yeast mixture. Make sure everything is well blended.
Gradually add the wet ingredients to the dry ingredients, mixing until a dough starts to form. Knead the dough for about 5-7 minutes until smooth and elastic, either with a stand mixer dough hook or by hand.
Place the kneaded dough in a lightly greased bowl, cover with plastic wrap, and let it rise in a warm spot for about 1 to 1.5 hours, or until doubled in size.
In a separate bowl, beat together room temperature unsalted butter, 1 cup all-purpose flour, powdered sugar, vanilla extract, and food coloring (if using) until smooth and creamy to make the topping.
Once the dough has risen, punch it down to release the air. Divide into equal portions, shape each into a ball, and place on a parchment-lined baking sheet.
Apply the topping over each dough ball using a piping bag or spatula, creating patterns or covering the top.
Cover shaped dough with a clean towel and let rise again for 30-45 minutes, or until puffy.
Preheat oven to 350°F (175°C). Bake Pan Dulce for 15-20 minutes, or until golden brown. Watch carefully to avoid overbaking.
Remove from oven and let cool on a cooling rack. Enjoy warm or at room temperature with your favorite beverage.