I have one cat that demands full on heavy petting, meaning:
You squish his face and flatten his head and shoulders into the bed/couch/floor then pet down his whole body squishing it into the floor. Do this rapidly until he has to claw his way forward to escape. This is important because if he doesn't have to fight to escape, he will come swat at you and yell at you until he has been properly squished.
If you do it right, he has to do the full body shake off and entire tail whippy whippy thing and then purrs for about 10 minutes.