Add: CounterCache feature to hasMany models

as discussed in issue #1879 
You are definitely on the right path :)