hasMany(ExclusionRules::class, 'exclusion_id'); } public function exclusionable() { return $this->morphTo(); } public function scopeFilter($query, Array $filters) { $query->when($filters['search'] ?? false, function ($query, $search) { return $query ->whereHasMorph('exclusionable', [Icd::class], function ($query) use ($search) { $query->where('code', 'like', "%" . $search . "%") ->orWhere('name', 'like', "%" . $search . "%"); }) ; }); } }