In a sauce pan over medium heat, pour in the milk and heavy cream. Let them simmer until bubbles start to form on the edges of the pan then remove from the heat.
The egg mixture:
In a mixing bowl, beat together the egg yolks, granulated sugar and the vanilla extract until smooth and pale.
Tempering:
Gradually add the milk mixture into the egg mixture. Being sure to alternate between pouring the milk and whisking. Pour all of the milk mixture into the bowl then return it to the pan and place over medium heat, add all the spices. Let the mixture simmer until it has thicken, it usually takes up to 5-7 minutes.
Let it cool:
Remove the mixture from the heat once it has thicken and transfer it to a bowl or a pitcher, let it cool for 20 minutes before refrigerating for at least 30 minutes.
The egg whites:
Beat the egg whites until stiff peaks have form and remove the eggnog from the refrigerator and fold in the egg whites. You can serve immediately or you can refrigerate it.
Notes
If you want to use rum for this recipe then you can add the rum into the milk and egg mixture before you let it cool in the fridge.
Homemade eggnog can be stored for up to 3 days in the fridge, with alcohol it can last up to 5 days.