Needs a time-based limit. Only allow action every so often.
A delayed event like a region buff? People remember you giving alms to the poor and like you for it for x days, depending on how big your donation was?
Like
Donate 25 gold - region buff for moral increase for 2 days
Donate 50 gold - ^ for 3 days
Donate 100 gold - ^ for 4 days
Donate 150 gold - ^ for 6 day
..
Just giving example of course.
This would work similar as to other region buffs that peasants remember for a certain time.