Get all the ingredients chopped and measured first.
Heat half the oil in a large casserole on a high heat. When it’s sizzling hot, add the beef, season generously with salt and pepper, and brown in the fat for about five minutes, breaking up any clumps of meat with a wooden spoon.
When the meat has coloured nicely, transfer it to a bowl, add the rest of the oil and the butter to the pan, and turn down the heat to medium-high.
Add the onions and celery, season and cook, stirring, for five minutes on a medium heat. Add the apple and garlic, and fry, stirring, for a few minutes more to soften the garlic.
Stir in the spices, oregano, green chilli (if using) and the chipotle, and sweat gently, without colouring, for five to 10 minutes more, until the vegetables are soft.
Drain and rinse the kidney beans and chickpeas, and add both to the pot with the tinned tomatoes, browned mince, stock and wine.
Bring to a simmer, stir in the chocolate and sugar, and leave to simmer gently for 25-30 minutes. At this point, you can take the pot off the heat, leave it to cool and refrigerate overnight.
Peel and stone the avocados, then put in a bowl with the lime juice, chilli and shallot, and mash with a fork. Stir in a small handful of chopped coriander stalks and season generously with salt.
To serve, reheat the chilli and serve on steamed long-grain rice with soured cream, chopped coriander leaf and the salsa.