Place the milk in a microwave-safe measuring glass and warm for 20 seconds so that it's fairly warm but not very hot. You don't want to burn the yeast!
Pour the milk into the bowl of your stand mixer fitted with the dough hook or a large mixing bowl.
Stir in the sugar, then sprinkle the yeast over top. Allow the mixture to sit for 5 minutes until it looks a little foamy.
Stir in the sourdough discard, eggs, butter, cocoa powder, instant espresso powder (if using), and salt.
Add the flour in 3 batches and stir until combined. If you are using the stand mixer, knead on low speed for 4-5 minutes until smooth. Otherwise, knead as best you can by hand. Try not to add too much flour. The dough is on the soft and slightly wet side, but shouldn't be sticky.
Place the dough in a lightly oiled bowl and cover. Refrigerate for an hour or two, until cold, or overnight (about 8-10 hours).
Once the dough is cold, remove it from the refrigerator and place it on a lightly floured surface. Roll to ½ inch thickness. Cut the doughnuts out with a 3-inch doughnut cutter (see notes).
Set the cut donuts on lightly floured parchment paper-lined baking sheets. Give them enough room to expand. Spray with a little nonstick spray and cover with plastic wrap. Allow them to rise 45 minutes at room temperature until they look puffy.
Toward the end of the rising time, heat your oil to 350 F over medium heat. A thermometer is really helpful here to monitor the temperature.
Line 2 baking sheets. One will have parchment paper and the other should have a double layer of paper towels for draining the fried donuts.
Prepare the glaze by sifting the powdered sugar into a small mixing bowl.
Slightly warm your heavy cream in the microwave for 10 seconds. A slightly warm glaze is thinner and will set better. If you are using instant espresso powder to make an espresso glaze, add it here.
Stir the heavy cream, vanilla extract, and salt into the powdered sugar.
Add doughnuts in batches to the hot oil and cook for about one minute per side. Donut holes take about a minute and a half total, just stir them to make sure they cook on all sides.
Remove the cooked donuts from the hot oil with a slotted spoon and place on the paper towels briefly to drain. Add a new batch of donuts to the oil.
While those donuts are cooking, dip the still-warm donuts on the paper towels into the glaze, turning once to fully coat. Remove and place on the parchment paper-lined sheet to set.
Repeat this process until all the donuts and doughnut holes have been cooked and glazed. Enjoy!
If you happen to have extra doughnuts, you can store them at room temperature in a box, or lightly covered for 1-2 days. As with all donuts, these are their very best the day they are made. Enjoy!
