/** * @return SprintSnapshot */ public function createSnapshot() { $tasks = $this->fetchTasks(); return SprintSnapshot::create(['sprint_id' => $this->id, 'data' => json_encode($this->fetchSnapshotData($tasks)), 'total_points' => $this->calculateTotalPoints($tasks), 'task_count' => count($tasks)]); }