$passwordUpgrader */ public function __construct(private ?string $plaintextApiToken, private PasswordUpgraderInterface $passwordUpgrader) { } public function getAndErasePlaintextApiToken(): string { $password = $this->plaintextApiToken; if (null === $password) { throw new LogicException('The api token is erased as another listener already used this badge.'); } $this->plaintextApiToken = null; return $password; } /** * @return PasswordUpgraderInterface */ public function getPasswordUpgrader(): PasswordUpgraderInterface { return $this->passwordUpgrader; } public function isResolved(): bool { return true; } }