01 - Combine chicken pieces with yogurt, lemon juice, ginger paste, garlic paste, garam masala, cumin, turmeric, chili powder, and salt in a large bowl. Mix thoroughly to coat all pieces. Cover and refrigerate for at least 1 hour, or overnight for maximum flavor penetration.
02 - Set Instant Pot to Sauté mode. Add 2 tablespoons butter and allow to melt. Add diced onion, minced garlic, and ginger paste. Cook, stirring occasionally, until onions are softened and translucent, approximately 3-4 minutes.
03 - Pour in tomato puree and add ground cumin, smoked paprika, ground coriander, and cayenne pepper. Stir continuously to combine spices and prevent scorching. Cook for 2 minutes to allow flavors to meld and raw spice notes to dissipate.
04 - Add the marinated chicken pieces along with all remaining marinade to the pot. Stir thoroughly to incorporate chicken into the sauce, ensuring pieces are evenly distributed.
05 - Secure and lock the Instant Pot lid. Set to Manual or Pressure Cook mode on High pressure for 8 minutes. Ensure steam release valve is set to Sealing position.
06 - When cooking cycle completes, allow pressure to release naturally for 10 minutes. After 10 minutes, carefully switch the steam release valve to Venting to release any remaining pressure. Open lid once pressure indicator has dropped.
07 - Set Instant Pot back to Sauté mode. Pour in heavy cream and add remaining 2 tablespoons butter. Stir continuously for 2-3 minutes until butter melts and sauce becomes rich and velvety. Taste and adjust salt seasoning as needed.
08 - Ladle hot butter chicken into serving bowls. Sprinkle generously with chopped fresh cilantro. Serve immediately alongside steamed basmati rice or warm naan bread for dipping.