Set aside about ¼ cup of the flour and place the rest in the mixing bowl with the sugar, water, milk, yeast mix, eggs and salt (that excess flour you set aside is in case you need it later).
Mix on low speed with the paddle attachment or kneading hook on your mixer, until the mix comes together.
If you used the paddle mix, switch to the dough hook and start kneading the dough.
Add the softened butter (1/2 - 1 tbsp at a time) until it's all incorporated. Add some flour, if you need to get the dough off the sides of the bowl. Add the rest of the flour if needed, to form a soft dough ball.
Knead the dough for about 5 - 7 minutes until you have a soft, shiny, slightly tacky dough.
Knead the dough for a couple of minutes in your hands till you have a smooth dough ball.
Place this ball of dough in a lightly oiled bowl (with enough room to rise) and cover with plastic wrap. (remember to place the dough with the seam side down).
Let the dough rise at room temperature (70-75°F) until it is has doubled in size - this should take about an hour, maybe less depending on how warm the ambient temp. is. (If you are pressed for time, you can let it proof in the fridge - for at least 12 - 24 hours, and continue from step 10).
If you allowed the dough to rise at room temperature - gently release the air in the dough and refrigerate it overnight, for a second slow proof. This helps develop the flavours of the dough better and the dough is also easier to handle when chilled. (However, you can roll out the dough and start cutting at this point if you wish. But I recommend leaving it overnight - or at least a few hours in the refrigerator).
Next morning, take the dough out on to a floured surface and roll it out to a ½ inch thickness.
Cut out 3-3.5 inch diameter doughnuts with a doughnut cutter - or use a large and small biscuit or cookie cutter.
Place the doughnuts and doughnut holes on a parchment paper. Knead the left over dough lightly and let it rest for about 30 minutes, and repeat rolling and cutting once more.
Cover the cut doughnuts and doughnut holes with plastic wrap and let them rise for about 1 hour (see tips in the post to check if the doughnuts are proofed properly).
Heat a good amount of oil or shortening (the doughnut needs to float at least 2 inches above the bottom of the pan) in a heavy bottomed pan.
When the oil is heated to 375°F/190°C, carefully drop in a doughnut. After 30 - 45 seconds, check to see if the doughnut has turned a golden brown. If it has, flip it over. If it hasn't, leave it for a few seconds longer and then flip it over (the doughnut will darken as they cool down, so be careful not to let it darken too much while frying).
Transfer the doughnut to a wire rack to let it cool.
To glaze, place a doughnut in the prepared glaze and turn to coat it completely. Then keep it on a wire rack to let the excess glaze drip. Sprinkle with funfetti or sprinkles if you like, before the glaze sets.