Prepare the Dough: In a stand mixer fitted with a dough hook (or a large mixing bowl), combine the bread flour, instant dried yeast, granulated sugar, and kosher salt.
In a small separate bowl, mix the warm milk, melted butter, eggs, and vanilla extract until well combined. Gradually add the wet ingredients to the dry ingredients, stirring until a dough forms.
Knead the dough using the stand mixer for 3–5 minutes or until it becomes smooth and elastic. Alternatively, transfer the dough to a lightly floured surface and knead by hand for 8–10 minutes.
Place the kneaded dough in a greased bowl and cover it with a clean kitchen towel or plastic wrap. Let it rise in a warm, draft-free place for 1–1.5 hours or until it doubles in size.
After the first rise, punch down the dough to release air. Divide it into 12 equal portions.
Roll each portion into a smooth ball and place them on a parchment-lined baking sheet, spaced slightly apart. Cover loosely with plastic wrap or a damp kitchen towel.
Let the shaped dough rise for 30–45 minutes or until it become puffy.
Preheat the oven to 350°F (175°C). Bake the buns for 18–20 minutes or until lightly golden brown on top. Remove them from the oven and let them cool on a wire rack.
Prepare the Icing: In a medium bowl, whisk together the powdered sugar, cream (or milk), vanilla extract, melted butter, and powdered milk (if using). Add food coloring if desired, and mix until smooth.
Once the buns have cooled completely, spread or drizzle the icing on top. Decorate with sprinkles, if desired.