<?php namespace App\Models; use Illuminate\Contracts\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Relations\BelongsToMany; use Illuminate\Database\Eloquent\Relations\HasMany; class Grade extends Model { use HasFactory; protected $fillable = [ 'name', ]; public function subjects(): BelongsToMany { return $this->belongsToMany(Subject::class); } public function students(): HasMany { return $this->hasMany(Student::class); } public function teachers(): BelongsToMany { return $this->belongsToMany(Teacher::class); } public function lessons(): HasMany { return $this->hasMany(Lesson::class); } public function scopeFilter(Builder $query): void { $name = request('name'); $query->when($name, function (Builder $query, $name) { $query->whereRaw('name ilike ?', ["$name%"]); }); } }