Have your poolish and leaven ready before you begin.
Bring milk to room temperature. In a big bowl, add polish and leaven to milk and stir.
Mix in the rest of the ingredients. Cover with saran wrap and let stand for half an hour.
Knead the dough for 5-10 seconds, cover and let ferment at room temperature for 1.5 hours, doing stretch and folds every half an hour. Stretch and fold is basically taking a corner of the dough, stretching and folding onto itself. Done once for each corner at a time.
Transfer the dough into a plastic bag, flatten it into a rectangle, and refrigerate for 2-3 hours.
Mold the butter and 1/2 cup of flour into a 8 x 12 inches rectangle. Do it quickly not letting the butter warm up. I use a pre-shaped envelope made from parchment paper for this task. I cut butter into small cubes, mix with flour, and place into the parchment paper envelope. Then, using a rolling pin, I pound, press and roll it to mold it into a rectangle. Put in the fridge.
Take out the dough from the fridge and roll out into a 12 x 20 inches rectangle.
Take out the block of butter from the fridge and lay it horizontally on the dough. It should cover about 2/3 of the length of the dough.
Fold the left and the right side of the dough as you would fold a letter. Turn the dough 90 degrees and roll it out into a rectangle measuring about 12 x 20 inches. Do the fold again, cover with saran wrap and refrigerate for 1 hour.
Take the dough out of the fridge, roll out to a 12 x 20 inch rectangle and fold. This is the second turn.
Refrigerate for 1 hour and do a third turn. If you want to use the dough later, place it into a freezer proof bag and freeze for up to three days. The night before using the dough, transfer it into refrigerator.
After the third turn, if using immediately, let the dough relax in the fridge for half an hour, then take out and roll out to 12 x 24 inches rectangle. The dough should be about 1/2 inch thick.
Using a pizza cutter, cut the dough in half, horizontally. Then cut vertically into about 3 or 4 equal pieces. Then cut each piece in half diagonally into triangles.
Roll up each triangle, beginning at the widest side, and placing the narrow end on the bottom.
Place rolled up pieces onto a parchment paper lined baking sheet, cover with plastic wrap and let sit at room temperature for about 2 hours. Croissants should increase in size by about 1.5 times.
Preheat oven to 425 F.
Prepare egg wash by whisking briskly egg yolks and cream or milk. Brush the tops of croissant with the egg wash.
Bake for about 20-30 minutes , until the croissants are deep golden brown, crisp and flaky. Smaller size croissants may take 15 minutes to bake, so keep an eye on them, especially the first time you are making them.