Eloquent perfectly fulfills its tasks simple and more or less efficient ORM for projects with CRUD and such.
Of course often need more complicated queries and they are isolated or in scope in the model or in separate classes, which bildet requests.
When tasks become even more difficult when you have to share all our model on the read and write portions, Eloquent already beginning podbeshivat :) Plus the inability to separate the logic of the model class from the logic of its storage in the database begins to strain at all more complicated models one row in the database. In the end, in those projects in which we want to separate Domain logic from everything else(including the database) is much more profitable to move away from him.
All these repositories we need to do just that, to abstract and separate the logic of storing objects domain logic anywhere. And eloquent it is almost impossible. I will analyze in detail in the book that there is already the advertise - https://leanpub.com/architecture-of-complex-web-ap...
Highlight the classes to a query building - it is quite normal for projects with Eloquent. Here only it is desirable not to get involved. Sometimes people suffer terribly with these lokomoskaj the builders, when corny is easier to write a raw SQL query. This usually applies to all reports where a lot of interesting aggregation groups, etc.