Put the chilli powder, Cayenne pepper, paprika and cumin into a large bowl. Chop the steak into bite-size pieces, add to the bowl and mix well to coat the meat. Leave to the side for now (or cover and put in the fridge for half an hour if you have time).
Chop the onions. Heat 2 tbsp cooking oil in a pan over a medium heat and fry the onions until soft. Use a slotted spoon to add them to the slow cooker, retaining the liquid in the pan.
Increase the pan heat to high. In batches, stir fry the steak until sealed. Again, using a slotted spoon, remove the steak from the pan and place into the slow cooker, retaining any juices in the pan.
Mix the oregano into the beef stock and pour into the pan. Bring to the boil then reduce the heat and simmer until it has reduced slightly. Pour over the beef and onion mixture in the slow cooker.
Add the chopped tomatoes and tomato ketchup to the slow cooker and mix everything together well.
Cook on low for 7 hours.
Add the kidney beans and sauce, mix well, re-cover and cook for another hour.
Drop the dark chocolate into the chilli and allow to melt. Mix through.
Check for seasoning.
Mix the cornflour in a mug with 4 tbsp cold water. Add to the chilli and mix through.
Goes well with braised rice or in wraps with sour cream and cheese.
Cornflour is optional but I found it too runny without.