belongsTo(User::class); } public function deals(): BelongsToMany { return $this->belongsToMany(Deal::class); } protected function casts(): array { return [ 'type' => ReportType::class, 'status' => ReportStatus::class, ]; } #[Scope] public function orderByStatus(Builder $query, array $statusOrder): Builder { $values = array_map(fn ($enum) => $enum->value, $statusOrder); // Create placeholders for each value: FIELD(status, ?, ?, ?) $placeholders = implode(',', array_fill(0, count($values), '?')); return $query->orderByRaw("FIELD(status, $placeholders)", $values); } }