role) { Role::AdministrativeApprover => [WaitingForAdministrative::class], Role::TechnicalApprover => [WaitingForTechnical::class], Role::Administrator => [WaitingForAdministrative::class, WaitingForTechnical::class], default => [], }; } public static function all(): array { return [ ...self::pendingStates(), ...self::successStates(), ...self::failedStates(), ]; } public static function filterByStatusGroup(string $filter, ?User $user = null): array { return match ($filter) { "pending" => self::pendingStates(), "success" => self::successStates(), "failed" => self::failedStates(), "waiting_for_action" => self::waitingForUserActionStates($user), default => self::all(), }; } }