Mix dry ingredients - Add the plain flour, sugar, salt, yeast and milk powder to the bowl of a stand mixer. Use the dough hook attachment to mix until combined. See notes if using a spiral mixer like the Ooni Halo.
Mix wet ingredients - In a large jug whisk together the eggs and milk until well combined.
First knead (15 min) - Add the wet ingredients and cooled tang zhong to the dry ingredients. Use the dough hook to mix the ingredients. Turn the mixer on 30% (that’s speed two on my Kenwood) and knead for 15 minutes.
Rest dough - Turn the mixer off and cover the bowl with plastic wrap. Rest the dough for 10-15 minutes. This will help relax the gluten in the dough and gives you an even smoother more elastic dough that is less sticky to work with later.
Second Knead - Knead the dough for 5 minutes on speed 2 (30% speed).
To test if dough is kneaded enough - Test by stretching a small piece between your fingers. It should form a thin, see-through sheet without tearing. Kneading time can vary depending on your mixer so focus on the dough’s feel rather than just time.
Add the butter and finish kneading - With the mixer on speed 2, add the softened butter a little at a time, letting each piece mostly mix in before adding the next. This will take about 5 minutes all up. Once all the butter is added, knead on medium low speed for about 5-10 minutes until the dough is smooth, elastic and comes away cleanly from the bowl. A slight stickiness at this stage is normal. If the dough begins looking overly shiny as the first bit of butter is added, it’s too warm. Cool the dough down in the fridge for 10 minutes before adding the remaining butter.
Room temp rise (Proof #1) - Add the dough to a large sized mixing bowl and cover with plastic wrap. Let it rise in a warm spot of the house for 1 hour or until doubled in size.
Cold rise (Proof #2) - Place the bowl of dough in the fridge for at least 2 hours, or up to 8 hours (overnight) for better flavor. The dough will continue to expand as it chills.
Divide and shape - Turn the chilled dough onto a lightly floured surface and divide into 10 pieces, aprox 58g each. Working quickly, roll each piece into a ball by cupping your hand over it and moving in small circles with gentle pressure. Repeat with all the dough pieces. Then dip the top of each bun in flour and use your hands to run the bottom of the dough between the heel of two hands to further tighten the seal under each bun and smoothen out the top. Take a look at the video and step by step photos for reference.
Final proof (Proof #3) - Arrange the buns on two large baking trays lined with baking paper. Cover loosely with greased plastic wrap and rise in a warm spot for about 1-3 hours. Rising time will depend on room temperature. The buns will almost triple in size. Rather than going off time, go off sight and feel. When lightly pressed with your finger the buns will feel slightly springy. They should spring back partway, not fully. If they spring back all the way they need more time, if they don’t spring back at all they are likely over proofed and should be baked immediately. Properly proofed buns should feel room temperature, not cool and will jiggle slightly when the tray is gently wobbled.
Bake - Preheat your oven to 195C / 385F (fan off), 175C / 350F (fan on). Gently brush buns with egg wash. Bake for 12 minutes until golden, light to lift, and fully cooked through. Cool completely before filling.