Combine milk, yeast, and sugar in a large bowl. Stir and let it sit for 10-20 minutes until it becomes foamy.
Add the eggs and vanilla extract, whisking until mixed.
Incorporate the butter and cream cheese, mixing well.
Gradually add the flour to the mixture, mixing on low speed. Once a dough ball starts forming, knead on medium speed for 10-15 minutes using a dough hook.
Take the dough out, form it into a ball, lightly grease the bowl with oil or butter, and return the dough to the bowl. Cover with a clean tea towel and let it rise in a warm place for 1 hour or until it doubles in size. Prepare the custard filling while waiting.
Once the dough has risen, punch down the center to release the air. Dust a clean surface with flour and roll the dough to about ½ inch thickness using a rolling pin.
Cover the rolled dough with a clean tea towel and let it rise for another 20 minutes.
Cut rounds from the dough using a cookie cutter, re-rolling scraps to use all the dough.
Place each dough piece on a square of parchment paper. Heat oil in a saucepan and carefully place the dough into the oil using the parchment paper. Deep fry for 2-3 minutes on each side until golden brown.
Remove the donuts and drain excess oil on paper towels. Let them cool.
Use a knife to make a small hole at the top of each donut. Fill a piping bag with custard and use a small nozzle to fill the donuts. Repeat for all donuts.