Heat olive oil and salted butter in an 8-quart stock pot over medium heat. Add chopped carrots, celery, and onion. Cook for about 5 minutes until the vegetables soften and release their aroma.
Add minced garlic and stir for 30 seconds until fragrant.
Add cabbage, green beans, zucchini, dried basil, and dried parsley. Stir well and cook for about 10–12 minutes until the vegetables start to soften.
Pour in the chicken stock. Add diced plum tomato, bay leaf, prosciutto, Pecorino Romano rind, and diced potato. Stir everything together.
Bring the soup to a boil. Once boiling, reduce the heat to low and let it simmer for 30 minutes, or until the potatoes are tender.
Stir in the kidney beans, garbanzo beans, and cannellini beans. Let the soup cook for another 5 minutes.
Remove the prosciutto and Pecorino rind if kept whole. Stir in grated Pecorino Romano cheese until melted.
Taste and adjust salt and black pepper as needed.
Ladle into bowls and serve hot.
Notes
Do not skip the Pecorino Romano rind. It adds deep, authentic Italian flavor.Cut vegetables evenly for uniform cooking.If the soup becomes too thick, add a little more stock or water.Fresh herbs can replace dried herbs if available.