Tim green beans and cut into 1” pieces. Tim zucchini and cut into ½” cubes. Peel potato and cut into ¾” cubes. Coarsely shred cabbage.
Heat oil and butter in stockpot or Dutch oven over medium heat. Add onions, cook and stir 6-8 minutes until softened. Stir in carrots and potatoes, cook about 5 minutes. Stir in celery and green beans, cook and stir 5 minutes. Stir in cabbage and garlic, cook an additional 2 minutes more.
To the stockpot add in tomatoes with their juices, broth, and water. Stir in salt, basil, rosemary, pepper, and bay leaf.
Bring to a boil over high heat, then reduce heat to a low simmer. Cover and simmer 1-½ hours, stirring occasionally.
Rinse and drain cannellini beans then add to stockpot. Uncover and cook over medium low heat 30-40 minutes more until soup thickens some, stirring occasionally. Remove bay leaf and serve with parmesan.