In a large bowl, combine the ground beef, parmesan, chopped parsley, egg, garlic, salt, pepper, oregano, and lemon juice. Mix until everything is evenly combined without overworking the meat.
Tip: Use a fork or your fingertips to mix gently so the meatballs stay tender instead of dense.
Cleanup: Wash your hands and wipe down the mixing area after handling raw meat to keep things sanitary.
2
Shape and chill the meatballs
Shape the mixture into small balls about 1 inch wide and place them on a plate or tray. You should have about 24 meatballs. Chill for 30 minutes so they firm up before browning.
Tip: Lightly oil your hands or use a small scoop for evenly sized meatballs.
Cleanup: Cover the tray with plastic wrap while chilling to avoid any drips or spills in the fridge.
3
Brown the meatballs
Heat the olive oil over medium low heat in a heavy pot. Working in batches if needed, briefly brown the meatballs on all sides. They should take about 2 minutes per batch and do not need to be cooked through. Transfer the browned meatballs to a plate.
Tip: Turn the meatballs gently with tongs or a spoon so they hold their shape while browning.
Cleanup: Leave the browned bits on the bottom of the pot. They will add flavor when you build the broth.
4
Build the soup base
To the same pot, add the beef stock, water, salt, and tomato paste. Stir to dissolve the tomato paste and scrape the browned bits from the bottom of the pot. Bring to a boil, then reduce the heat and simmer for about 30 minutes.
Tip: Use a wooden spoon to loosen the browned bits as the liquid heats up for extra depth of flavor.
Cleanup: Wipe any splashes off the stovetop while the soup simmers to make final cleanup easier.
5
Add the herb bundle
Gather the parsley leaves, bay leaves, and peppercorns in a piece of cheesecloth. Tie it securely with kitchen twine to make a small bundle and add it to the pot.
Tip: Double layer the cheesecloth so the peppercorns do not escape into the soup.
Cleanup: Keep a small bowl nearby to hold the herb bundle when you remove it so it does not drip on the counter.
6
Add the vegetables
Add the chopped onion, carrot, celery, and russet potato to the pot. Simmer for 15 minutes, then remove and discard the herb bundle.
Tip: Cut the potatoes and vegetables into similar sized pieces so they cook evenly.
Cleanup: Discard the herb bundle once it has cooled slightly so it does not leak in the trash.
7
Finish with cabbage and meatballs
Add the sliced cabbage and the browned meatballs to the pot. Bring the soup back to a gentle boil, then reduce the heat and simmer for 8 to 10 minutes until the cabbage is tender and the meatballs are cooked through.
Tip: Avoid boiling the soup too vigorously at this stage so the meatballs stay tender and hold their shape.
Cleanup: Skim any excess fat from the surface with a spoon and discard it in a heat safe container.
8
Serve
Ladle the soup into bowls, making sure each serving includes several meatballs and plenty of vegetables. Serve with plenty of freshly grated parmesan sprinkled over the top.
Tip: Warm your bowls briefly with hot water before filling them so the soup stays hotter at the table.
Cleanup: Let leftovers cool slightly before transferring to airtight containers for refrigeration or freezing.
Make dinner one less decision.
Add this recipe to an existing meal plan, or start a new one.