Under the hood, the withAvg/withCount/withSum and other methods in Eloquent use the 'withAggregate' method. You can use this method to add a subselect based on a relationship
// Eloquent Modelclass Post extends Model{ public function user() { return $this->belongsTo(User::class); }} // Instead of eager loading all users...$posts = Post::with('user')->get(); // You can add a subselect to only retrieve the user's name...$posts = Post::withAggregate('user', 'name')->get(); // This will add a 'user_name' attribute to the Post instance:$posts->first()->user_name;
Tip given by @pascalbaljet