Soak the chickpeas overnight in a bowl of cold water; drain and place in a large pot.
Wrap the bay leaves, cinnamon stick, cardamom, cloves and peppercorns in a piece of cheesecloth and tie with twine. Add to the pot along with 8 cups water and bring to a boil over medium-high heat, skimming off any foam from the surface. Reduce the heat to medium and simmer until the chickpeas are tender, about 50 minutes. Strain the chickpeas, reserving the cooking liquid and spice bundle.
Meanwhile, pulse the quartered onion, ginger and garlic in a mini food processor to form a paste. Heat the vegetable oil in a large pot over medium-high heat. Add the diced onion and cook until browned, 6 to 10 minutes. Add 1 1/4 teaspoons salt, the ginger-garlic paste and the serrano. Cook, stirring, until the mixture is dry, 5 to 7 minutes. Add the cumin, coriander and turmeric and cook until fragrant, about 1 more minute.
Add the chickpeas, tomatoes, 3 cups of the reserved cooking liquid and the spice bundle; simmer until thickened, about 20 minutes. Add the cauliflower and cook until slightly tender, 5 to 6 minutes (add more cooking liquid, if needed). Stir in the okra and cook until just tender, about 5 minutes. Discard the spice bundle. Stir in the lemon juice and cilantro and season with salt.