Heat the oil in a large pan on medium heat. Add the onion and red pepper and soften for 4-5 minutes, stirring regularly.
Next, add the chopped garlic, ginger, and chilli. Stir well and cook for another couple of minutes.
After a couple of minutes, add the jackfruit pieces, cumin, coriander, garam masala, and turmeric. Lightly crush the cardamom pods with the flat of your knife and add these to the pan. Stir well for a minute or so, using a wooden spoon to break apart some of the jackfruit for a mix of tender chunks and stringy pieces.
Next, add the tomatoes and break these apart with a spoon. If using tinned tomatoes, fill up a third of the empty can with water and swirl this around before adding to the pan. If using fresh tomatoes, simply add around 150 ml (approx. ½ cup) of water. Add salt and pepper and simmer on low heat for 10 minutes, adding extra water if necessary.
After 10 minutes, add the coconut milk and lime zest. Stir well, bring to a gentle simmer, and cook for a further 10 minutes or until the curry is thick and creamy, being careful not to let the coconut milk boil.
Once thick and creamy, remove the cardamom pods and stir in most of the chopped coriander. Adjust the seasoning and serve with rice, fresh coriander, and a squeeze of lime juice.