01 - Dissolve yeast in lukewarm milk. Let stand for 5 minutes until foamy.
02 - Combine flour, sugar, salt, and softened butter with the yeast mixture. Mix until a 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 and roll into a 6 x 8-inch rectangle. Refrigerate if butter becomes too soft.
05 - Roll chilled dough on a floured surface into a 10 x 14-inch rectangle. Place butter slab on one half of the dough, fold the other half over, and press edges to seal.
06 - Roll dough gently into a 10 x 20-inch rectangle. Fold into thirds like a letter. Wrap and refrigerate for 30 minutes.
07 - Repeat rolling and folding process two more times, rotating dough 90 degrees before each fold. Refrigerate for 30 minutes between each turn.
08 - Roll final 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. Place seam-side down on a parchment-lined baking sheet.
09 - Cover loosely and let rise at warm room temperature for 2 hours until puffy and doubled in size.
10 - Preheat oven to 400°F.
11 - Beat egg with milk until combined. Brush croissants lightly with egg wash.
12 - Bake for 18 to 20 minutes until deep golden brown and crisp. Cool slightly before serving.