Generic abstract repositories to obfuscate Eloquent implementation