If you are using dried beans soaked overnight, start by adding them to a separate pot with water. The water should be around 1 1/2 inch (5 cm) above the beans. Bring to a boil, then reduce the heat and simmer from 50 minutes to 2 hours, depending on the bean variety you. Check to see when the beans are done.
In a 9 quart (9 liter) pot, warm the olive oil and butter. Add the onions, garlic, and a pinch of salt. Sauté onions for 3-5 minutes until translucent and fragrant (you can also add the carrots and celery together with the onions if you prefer).
Add the tomato paste and sauté for 2-3 minutes.
Pour 4 quarts (4 liters) of water, turn the heat to medium-high, and bring to a boil. Then add the ham hock, the can of chopped tomatoes, and the bay leaves. Lower the heat to low and simmer for 2 hours, until the ham hock is almost cooked through, and falling off the bone. Take out with tongs, and shred with two forks or your hands. Set aside.
Add the rest of the chopped veggies (carrots, cabbage, celery ribs, green beans, green peas, zucchini, spinach), chopped Parmesan rind, canned beans, chicken bouillon, and cook until all the veggies are tender, around 15-20 minutes of cooking. When ready, add the grated Parmesan and the oregano, and cook for 1-2 more minutes, then turn off.
Meanwhile, in a separate pot, cook the pasta al dente, as per package instructions. Rinse with cold water to wash off the starch and prevent the pasta from sticking to each other.
Add the meat back to the soup.
Taste and season with more salt and pepper, if needed. If you'd like to add a bit of brightness to your minestrone, to cut through the richness, add 3-4 tablespoons of freshly squeezed lemon juice (taste after each tablespoon and adjust to your taste).
To serve, spoon some pasta into the serving bowls, then top with the soup, veggies and ham.
Finish with a good sprinkling of Parmesan cheese and chopped fresh basil or parsley (optional). Best served with garlic bread or any crusty, rustic bread.