I am finishing up a large project using Laravel 4 and had to answer all of the questions you are asking right now. After reading all of the available Laravel books over at Leanpub, and tons of Googling, I came up with the following structure. One Eloquent Model class per datable table One Repository class per Eloquent Model A Service class that may communicate between multiple Repository classes.