Make the meatballs: Soak the bread slices in the milk until soft, then squeeze out the excess liquid. Fry the onions and garlic in a little oil over medium heat until soft and translucent, then set aside to cool. In a large bowl, combine the pork mince, soaked bread, cooled onion mixture, eggs, coriander, cloves, nutmeg, parsley, salt, and black pepper. Mix until well combined. Roll the mixture into evenly sized balls and place on a tray. Refrigerate for 30 minutes to firm up.
Cook the meatballs: Heat a generous amount of oil in a large pan over medium heat. Fry the meatballs in batches, turning regularly, for 5-6 minutes per side until golden brown and cooked through. Remove and set aside, keeping them warm.
Make the pap balls: Bring the water to the boil with the salt and stock cube. Gradually add the maize meal, stirring constantly to prevent lumps. Reduce the heat to low and cook for 15 minutes, stirring frequently. Stir in the butter and cook for a further 5 minutes. Remove from the heat and allow to cool slightly before mixing in the egg. Roll tablespoons of the mixture into balls and coat in extra dry maize meal. Refrigerate for 15 minutes to firm up. Heat oil to 180°C and fry the pap balls in batches until golden and crispy. Drain on paper towel and serve immediately.
Make the onion gravy: Melt the butter in a saucepan over medium heat and fry the onions until soft and golden. Add the flour and cook for 1 minute, stirring constantly. Gradually add the beef stock, stirring to prevent lumps. Add the cloves, season with salt and black pepper, and simmer until the gravy thickens to your liking.
Serve: Arrange the meatballs on a large serving platter, pour the onion gravy over them, and place the crispy pap balls around the edges. Serve any remaining gravy on the side.