In a bowl, mix together all of your dry ingredients, including the yeast.
Cut your butter in rough slices about 1/8 inch thick and add them to the flour mixture. Stir a few times to coat the butter, then add your cold milk and stir again just until you get a very rough dough that you can form into a ball.
Wrap the dough and place it in the fridge for 1 hour to chill.
Next on a coconut floured surface roll the dough out into a rectangle as best you can (it's okay if it's a bit rough the first time, just gently push in the edges if pieces separate - also see my tips on rolling the dough if it's dry or sticking).
Fold one side of the rectangle inward, then the other until the dough looks like this (see photo).
Turn the dough 90* and Roll the dough out into a rectangle again, pushing down the layers you just formed. Repeat this 4-6 times. (I did it 5 times).
Fold once more and then wrap your dough and place it in the fridge to cool for another hour.
After chilling, again on a well-floured surface, roll the dough out into a thick rectangle (it will be hard to get it very thin at this point) and cut the dough in half with a sharp knife. Wrap half the dough and place it back in the fridge.
Working with half the dough now, roll it out into a rectangle about 1/8th of an inch thick (see photos). Optional, cut the edges off this rectangle with a pizza cutter to make for sharper edges and nicer looking croissants.
Now cut the dough into 3 smaller rectangles and then cut those rectangles from one corner to the other to form large, long triangles (see photos).
To roll the croissants, take the thickest end and roll it towards the smaller end. I like to pull the smaller end gently over top and pinch it into the dough to make sure the croissant doesn't come un-rolled in the oven (again, see photos). Then pull the ends of the croissant inward slightly to make it a c shape.
Repeat this process for the rest of the dough, including the second half in the fridge.
Place the rolled croissants on two parchment-lined baking sheets spaced evenly apart and brush them with heavy cream.
Lightly cover the croissants with Saran Wrap and let them rise somewhere warm for ~1 1/2 - 2 hours. (They will grow about 1.5x in size). I like to pre-heat my oven to the lowest temperature before-hand and then shut it off and when it's just slightly warm, let them rise there with the door slightly ajar.
Once the croissants have risen, pre-heat your oven to 375*F and bake them for ~20min or longer. (* I recommend baking a test croissant to check how long they take in your oven) My oven bakes slow and they took ~25min to be fully cooked. The outsides will brown slightly more than your typical croissants but the insides will remain quite soft. If you're having issues with the outsides baking too fast then you can try lowering your oven temperature to 350*F
Serve the croissants warm or let them cool fully and freeze them following the freezing instructions above for a quick and easy breakfast! I highly recommend serving these with butter and jam! They are delicious.