Each product has been independently selected by our editorial team. We may receive commissions from some links to products on this page. Promotions are subject to availability and retailer terms.
"This is a really simple, beautiful, easy one-pot soup that you could serve for lunch or dinner," says Rach, "and I love it in the really cold months of the year. It's a kid-pleaser, it's a crowd-pleaser and it's kind of a classic." A lot of people riff on this, though, including Rach! Here, she uses rice to bind the meatballs instead of bread, hence the name "porcupine."
For more hearty soups from Rach, check out her Minestrone with Barley and Beans and Italian Chicken and Rice Stew.
For the soup, cook the broccoli rabe or broccolini in salted water at low rolling boil for 2 to 3 minutes, then cold shock, drain and chop into bite-sized pieces.
Heat a soup pot over medium heat with EVOO and butter, add onions and season with salt.
Add bay leaf, cover pot and sweat onions 10 to 12 minutes, stirring occasionally. Add garlic and stir a minute or 2, then add tomatoes, stock and passata. Simmer 10 to 15 minutes more and puree with stick blender.
For the meatballs, combine all ingredients and roll into balls. Slide into simmering soup, cover and cook 25 minutes or until rice is tender and beef is cooked through.
Add broccoli rabe with 5 minutes left of simmer. Serve in bowls topped with basil and shredded Parmesan cheese.