'datetime', 'ended_at' => 'datetime', ]; } protected static function booted(): void { static::creating(function (LiveStream $stream) { if (empty($stream->uuid)) { $stream->uuid = (string) Str::uuid(); } }); } public function session(): BelongsTo { return $this->belongsTo(Session::class, 'session_id'); } public function setStreamKeyAttribute(?string $value): void { $this->attributes['stream_key'] = $value ? Crypt::encryptString($value) : null; } public function getStreamKeyAttribute(?string $value): ?string { if (! $value) { return null; } try { return Crypt::decryptString($value); } catch (\Throwable) { return null; } } }