01 - Dissolve yeast in lukewarm milk. Let stand for 5 minutes until foamy.
02 - Combine flour, sugar, salt, and softened butter with yeast mixture. Mix until rough dough forms, then knead for 5 to 7 minutes until smooth and elastic.
03 - Shape dough into a rectangle, wrap tightly in plastic wrap, and refrigerate for 1 hour.
04 - Place cold butter between two sheets of parchment paper. Pound with rolling pin and roll into a 6 x 8-inch rectangle. Refrigerate if butter becomes too soft.
05 - Roll chilled dough on lightly floured surface into a 10 x 14-inch rectangle. Place butter slab on one half of dough, fold remaining dough over butter, and seal edges by pressing with rolling pin.
06 - Roll dough gently into a 10 x 20-inch rectangle. Fold into thirds like a letter (letter fold). Wrap and refrigerate for 30 minutes.
07 - Repeat rolling and folding process two more times, rotating dough 90 degrees before each roll. Chill for 30 minutes between each fold.
08 - Roll laminated dough into a 10 x 20-inch rectangle. Cut into 8 equal rectangles. Place chocolate at one end of each rectangle and roll tightly into a log, placing seam-side down on parchment-lined baking sheet.
09 - Cover loosely with plastic wrap or clean towel. Let rise at warm room temperature for 2 hours until puffy and doubled in size.
10 - Preheat oven to 400°F.
11 - Whisk egg with milk until blended. Brush egg wash gently over surface of each croissant, avoiding excess pooling.
12 - Bake for 18 to 20 minutes until deep golden brown and crisp. Cool on baking sheet for 5 minutes before serving.