Heat milk (4 cups) in a medium saucepan until hot and it just starts to simmer — do not let it boil.
While the milk is heating, add white sugar (1 cup) and cornstarch (½ cup) to a mixing bowl and whisk to combine.
Using an electric mixer, whisk the egg yolks (8) into the sugar mixture until pale yellow.
Whisk in orange zest (1 tbsp), fresh orange juice (⅓ cup) and vanilla extract (2 tsp).
Remove the milk from the heat. With the mixer on low speed, little by little whisk the milk into the egg mixture.
Pour the mixture back into the saucepan and place over medium heat. Whisk continuously for 5 minutes, until the custard has thickened to the consistency of thick pudding.
Remove from heat and whisk in the butter (56 g).
Pour the orange custard into a large bowl and cover with plastic wrap, pressing the wrap onto the surface of the custard to prevent a skin from forming.
Chill for at least 4 hours before serving.