Mix all the marinade ingredients together and let it marinate until you need it.
Turn the Instant Pot to Saute mode and add the butter.
Add cumin, green cardamoms, cloves and cinnamon. After about 30 seconds, add the chopped onion and smashed garlic cloves. Cook the onions for about a minute and then add ginger and green chili. Mix in and all the spice powders followed by the crushed tomatoes. Add a pinch of salt and cook till the sauce is bubbly, about 3 minutes.
Cancel the saute mode and transfer the sauce into a blender and let it cool for a few minutes.
Turn the Instant Pot back to saute mode and add the marinated chicken pieces. Sear the chicken on both sides for about a minute. While the chicken is searing, very carefuly blend the sauce until smooth and silky.
Add the blended sauce to the instant pot (that already has the chicken in it), making sure it covers the seared chicken. Add salt, tomato ketchup and sugar.
Cancel the saute mode and turn the Instant pot to manual/pressure cooker mode. Set the timer to 5 minutes. Close the lid and make sure that the vent is set to "sealing" position.
It will take about 10 minutes for the Instant pot to reach high pressure. After 5 minute timer is over and the Instant pot beeps, carefully move the valve to "venting" to quick release the pressure.
After the pressure weight drops, open the lid. Finish the butter chicken with kasuri methi and heavy cream. Check and adjust seasonings if needed.
Garnish with cilantro and serve hot with homemade garlic naan (recipe here), chapathi (recipe here) or rice (recipe here). Your taste buds will be forever grateful!