 <p>If i'm not getting your question wrongly, your question mysql solution would be <a href="http://stackoverflow.com/a/12114021/1728836">Get top n records for each group of grouped results</a></p> <p>But when we convert our desire query to laravel, so its will look alike:</p> <pre><code>$Rating1 = Model::whereRating(1)-&gt;take(10); $Rating2 = Model::whereRating(2)-&gt;take(10); $Rating3 = Model::whereRating(3)-&gt;take(10); $result = Model::unionAll($Rating1)-&gt;unionAll($Rating2)-&gt;unionAll($Rating3)-&gt;get(); </code></pre> <p>And its also one query not multiple as per laravel 4.2 docs, If you still confuse to implement it, let me know.</p>