When creating a page it's highly recommended to work from Repository classes because it has build in cache. You should invalidate cache only when you update or remove item from the model by using the following methods:
public function updateEntry(Model $model);
// By using updateEntry, you should provide Illuminate's updated/saved Model in function parameter!
public function removeEntry(Model $model);
// you should provide the model instance from illuminate.
When creating repository, your repository should be placed in App\Http\Repository directory and should be names as suffix Repository, plus should extend AbstractRepository class and should implement $cachekey protected class variable and getModel() method and should return...