|null */ public function decrypt(string $encrypted): ?array { try { $json = Crypto::decryptWithPassword( $encrypted, Passport::tokenEncryptionKey($this->encrypter), ); } catch (Throwable) { return null; } $payload = json_decode($json, true); return is_array($payload) ? $payload : null; } /** * Encrypt a payload the same way League's CryptTrait does (for tests). * * @param array $payload */ public function encrypt(array $payload): string { return Crypto::encryptWithPassword( json_encode($payload, JSON_THROW_ON_ERROR), Passport::tokenEncryptionKey($this->encrypter), ); } }