Heat the oil in a saucepan over a medium heat, add the onion, fennel and garlic, and cook until softened and just beginning to brown, about 10-12 mins.
Mash half the chickpeas and add to the pan with the tomatoes, stock and barley. Top up with a can of water and bring to the boil, then reduce the heat and simmer, covered, for 45 mins or until the barley is tender. Add another can of water if the liquid has significantly reduced.
Add the remaining chickpeas and the butter beans to the soup. After a few mins, stir in the spinach and cook until wilted, about 1 min. Season and serve scattered with Parmesan.