Heat the oil in a large saucepan over a medium heat and add the onion. Sauté for a few minutes until the onion is translucent. Add the potato, carrot, celery, cauliflower, celery leaves, zucchini, barley and garlic and cook for 5 minutes, then add the tomato paste, sauté́ for a minute or two, then add tinned tomatoes and cumin.
Cook for another 5 minutes, then add the stock and bay leaf, and bring to the boil over a medium–high heat. Reduce the heat to medium and cook uncovered for 20 minutes, stirring occasionally.
Add the legumes and greens, then reduce the heat to low and cook for 10 minutes, stirring occasionally. Season to taste with salt and pepper. Remove and discard the bay leaf and ladle the soup into serving bowls and serve.