I really like this question because you’re not just asking me to tell you why he’s purring – you’re using what you already know to learn more and then increase your own ability to figure out your cat.
Context will be a large part: did something happen, is he hurt, etc. Often a dilated pupil even in bright light can indicate pain if he’s purring. You can also check for responsive behavior – happy cats engage with people and touch, stressed or hurting cats may sit stiffly when touched or ignore their name and treats.