Make dough: Heat milk in a microwave-safe container in the microwave until lukewarm but not scalding, 15 to 30 seconds. Pour lukewarm milk into a large bowl. Add eggs, oil, and water; mix well.
Mix together flour, yeast, and salt in a medium bowl. Stir into milk mixture until fully incorporated. Cover the bowl and let rest for 15 minutes.
Turn dough out onto a lightly floured surface. Knead until smooth and elastic, adding flour as needed if too sticky, about 5 minutes. Shape dough into a smooth ball by tucking folded ends under. Place into a clean bowl, cover, and let rise in a warm area until doubled in size, 1 to 1 1/2 hours.
Meanwhile, prepare filling: Place pork in a bowl with soy sauce, sugar, oyster sauce, cornstarch, and pepper. Mix well to combine.
Heat oil in a large skillet over medium heat. Cook and stir onion, garlic, and star anise in hot oil for 2 minutes. Add ground pork mixture; cook and stir until browned and crumbly, 4 to 5 minutes. Pour in water; reduce heat and let simmer, scraping the bottom of the pan occasionally until mixture is glazed but not soupy, about 10 minutes. Transfer filling to a bowl and refrigerate until dough is ready.
Preheat the oven to 100 degrees F (37 degrees C). Line a large baking sheet with parchment paper.
Portion dough into golf ball-sized pieces, about 2-inches in diameter. Arrange on the prepared baking pan with 1 to 2 inches between them. Flatten dough balls using your hand to 1/4-inch thickness or slightly larger than the palm of your hand. Put 1 tablespoon filling in the dough centers. Gather edges of dough at the top; twist and pinch to seal. Place each bun back on the prepared baking sheet.
Turn off the oven once it has reached temperature. Transfer buns on the baking sheet to the warm oven and let buns rest until doubled in size, about 30 minutes.
Preheat the oven to 325 degrees F (165 degrees C), leaving buns inside. Bake buns until bottoms are lightly browned, 12 to 15 minutes.