Repository pattern implementation for Laravel