In a large bowl add all the meatball ingredients and mix well. Roll into into meatballs approximately 1 inch. Set aside while you prepare the soup.
For the soup:
Heat olive oil in a large sauce pan, add onions and sauté for 5 minutes. Add the carrots, celery and garlic and cook for 5 minutes, stirring occasionally.
Stir in the tomato paste and mix well with the vegetables. Add the escarole and stir until wilted. Pour in the chicken stock and bay leaves and bring to a boil.
When the soup comes to a boil, add the prepared meatballs. Lower to a simmer and cook with the lid on for 30 minutes.
Remove the lid and stir in the pasta. Cook until the pasta is ready, according to the package instructions. Add salt and pepper as desired.
Remove and discard the bay leaves before serving. Serve hot with Parmigiano cheese at the table.
Notes
In my local grocery store I can purchase a combined package of ground beef, veal and pork in approximately 450 gram (1 lb) packages. You may only use 1 type of ground meat or any combination of 2 types, if you prefer.
Most recipes add spinach to this soup. I prefer escarole (which my mother always uses) as I like the way it holds it's shape in the soup. But you can substitute with spinach if you prefer.
It's perfectly fine to cook the raw meatballs in the broth. The meatballs are quite small and will have plenty of time to cook thoroughly in the broth. They also add great flavor to the broth while cooking.
I'm partial to using tubettini pasta in hearty vegetable soups but any other small shaped pasta will do.