'decimal:2', 'logged_at' => 'datetime', ]; public function issue(): BelongsTo { return $this->belongsTo(Issue::class); } public function user(): BelongsTo { return $this->belongsTo(User::class); } protected static function boot() { parent::boot(); // Update issue actual_hours when time log is created, updated, or deleted static::created(function ($timeLog) { $timeLog->updateIssueActualHours(); }); static::updated(function ($timeLog) { $timeLog->updateIssueActualHours(); }); static::deleted(function ($timeLog) { $timeLog->updateIssueActualHours(); }); } protected function updateIssueActualHours(): void { $totalHours = $this->issue->timeLogs()->sum('hours'); $this->issue->update(['actual_hours' => $totalHours]); } }