substr(str_shuffle(str_repeat($alphabet, 8)), 0, 4); return $segment().'-'.$segment(); } /** * Random secret the CLI keeps; only its hash is stored. */ public static function generatePollToken(): string { return Str::random(48); } public function user(): BelongsTo { return $this->belongsTo(User::class); } public function personalAccessToken(): BelongsTo { return $this->belongsTo(PersonalAccessToken::class, 'personal_access_token_id'); } protected function casts(): array { return [ 'expires_at' => 'datetime', 'consumed_at' => 'datetime', ]; } }