Building Query: Eloquent models are query builder as well .So we can do everything in eloquent which is possible with query builder. $house=house::where('id',1) ->orderBy('id') ->take(1) ->get(); dd($house); Collection: The Laravel collection class provide us some helpful function to retrieve data Such as get, sum , all, average etc . $house=house::where('id',1) ->get(); dd($house); Chunk: IF we have thousand of records we can use chunk method instead of get() or all(); owner::chunk(1,function ($owner){ foreach ($owner as $ow){ var_dump($owner); } }); If record is updating while retrieving the data we have to use chunkById instead of chunk method. owner::chunkById(1,function ($owner){ foreach ($owner as $ow){ dd($owner); } },$column='id'); Lazy Method: It is similar to chunk but instead of providing full set of 200 or more records at once it generates a lazycollecton. $owner=owner::lazy(); foreach ($owner as $ow) { dd($ow); } lazycollecton use php generator. https://www.php.net/manual/en/language.generators.overview.php Curser: It also use php generator internally. It only executes one database query so , it cannot use relationships. $owner=owner::cursor(); foreach ($owner as $ow) { dd($ow); } Advanced Subquery: We can add subquery using addSelect method by which we can get information of a single query $owner=owner::addSelect(['owner_name'=>house::select('id') ->where('id','1') ])->get(); dd($owner); OrderByDesc : $owner=owner::orderByDesc(house::select('id') ->where('id','1') ->orderByDesc('id') )->get(); dd($owner); Post navigation Learning Eloquent with Laravel 8 Detail explanation of the Eloquent relationships with Laravel 8 & 9