
In the bowl of a stand mixer, combine the milk, yeast and sugar. Let sit in a warm spot until foamy and frothy, about 10 minutes. Add the butter, egg, 3 cups flour, and salt. Mix on high with the dough hook until the dough comes together and becomes soft and somewhat sticky. Add as much of the remaining ½ cup flour as needed to get the correct texture. Transfer to an oiled bowl and cover with plastic wrap and a damp kitchen towel. Let rest in a warm spot until doubled in size, about 1 hour.
Transfer dough to a well floured work surface, kneading a few times. Divide the dough into about 8-10 even pieces. Cover with plastic wrap and let rise in a warm place for about 30 minutes.
Working with one piece at a time, keeping the other pieces covered, roll out into about 16-inch rope. Twist, seal the end and place on a baking sheet lined with parchment paper. Continue rolling and twisting the remaining dough. One final time, cover the twists with plastic wrap and let rest in a warm spot until doubled in size, about 30 minutes.
Meanwhile, fill a large heavy-duty dutch oven halfway with vegetable or canola oil. Attach a candy thermometer and heat the oil to about 335 degrees F. Once hot, fry the doughnuts in batches, for about 4 minutes on each side. Drain and transfer to a baking sheet lined with paper towels to soak up the excess oil. Transfer the doughnuts to a wire rack set over a baking sheet. Continue frying the remaining doughnuts.
In a shallow bowl, whisk together the ingredients for the chocolate or sugar glaze (whichever you prefer). Dip the doughnuts into the glaze (or paint on with a basting brush) and return to the wire rack. Allow the doughnuts to set before eating. Doughnuts are best on the day of, but can be wrapped with plastic and kept at room temperature for up to 2 days. Enjoy!