Ben bu tür işlemlerde kalan limit gibi bir değeri tutmazdım, limit azaltma yapmazdım, anlık hesaplatırdım. Kullanıcının 10 post hakkı var, kaç post hakkı kaldığını post_hakki = post_limit - post_sayisi şeklinde öğrenirdim.
Policy olayında ise bu tabloya sorgu yapan bir PolicyLimits gibi trait oluştururdum ve policy oluştururken onu kullanırdım. Yani:
class PostPolicy {
use PolicyLimits;
// ...
}
gibi. PolicyLimits::getLimits() gibi bir yöntemle de örneğin PostPolicy::update() içerisinde limitleri çekip ona göre true/false dönderirdim.
Seçenek çok. Biraz uğraşarak istediğinize ulaşabilirsiniz.
(Bu işlemleri yaparken sorgu sayısı artabilir, ona göre bir strateji izleyip sorgu sayılarını azaltmanız gerekebilir. Ayrı bir tablo, önbellek vs... hangisi sizin sisteme uyarsa.)