Eloquent scopes inside of other relationships

Did you know that you can use Eloquent scopes inside of defining other relationships?

app/Models/Lesson.php:

public function scopePublished($query)
{
return $query->where('is_published', true);
}

app/Models/Course.php:

public function lessons(): HasMany
{
return $this->hasMany(Lesson::class);
}
 
public function publishedLessons(): HasMany
{
return $this->lessons()->published();
}

Recent New Courses