'datetime', 'last_seen_at' => 'datetime', 'is_regression' => 'boolean', 'metadata' => 'array', ]; } public function project(): BelongsTo { return $this->belongsTo(Project::class); } public function events(): HasMany { return $this->hasMany(Event::class); } public function latestEvent(): HasMany { return $this->events()->latest('timestamp')->limit(1); } public function resolve(?string $release = null): void { $this->update([ 'status' => 'resolved', 'is_regression' => false, 'resolved_in_release' => $release, ]); } public function ignore(): void { $this->update(['status' => 'ignored']); } public function mute(): void { $this->update(['status' => 'muted']); } public function unresolve(): void { $this->update(['status' => 'unresolved']); } public function markRegression(): void { $this->update([ 'status' => 'unresolved', 'is_regression' => true, ]); } }