Melt the butter with the olive oil in a large soup pot or Dutch oven set over a medium heat.
Add the onion, potato, bay leaf, and a pinch of salt, sweating for 6-7 minutes until the onion has softened and turned translucent.
Stir in the ham and cabbage, cook for 2 minutes, and then cover with the broth. Bring to a rapid simmer and then cook very gently for 15-20 minutes until the cabbage and potato are tender; stir in the sweetcorn towards the end of cooking.
When ready, stir in the chopped parsley and season to taste with salt and pepper. Serve straight from the pot.