'boolean', ]; protected static function booted(): void { static::creating(function (OauthProvider $model) { $model->uuid = self::getNewUuid(); }); static::created(function (OauthProvider $model) { NexusDB::cache_del(self::NEW_UUID_CACHE_KEY); }); } public static function getCallbackUrl(string $uuid): string { return sprintf("%s/oauth/callback/%s", getSchemeAndHttpHost(), $uuid); } private static function getNewUuid(): string { return NexusDB::remember(self::NEW_UUID_CACHE_KEY, 86400 * 365, function () { return UUid\v4(); }); } }