morphOne(Task::class, 'taskable'); } public function store(): BelongsTo { return $this->belongsTo(Store::class); } public function storeMaster(): BelongsTo { return $this->belongsTo(Employee::class, 'store_master_id'); } /** * 任务状态 */ protected function taskStatus(): Attribute { return Attribute::make( get: function (mixed $value, array $attributes) { /** @var \App\Models\Task */ $task = $this->task; if ($task->isSuccess()) { return TaskLedgerStatus::Success; } $datetime = now(); if ($datetime->lt($task->start_at)) { return TaskLedgerStatus::None; } elseif ($datetime->gte($task->end_at)) { return TaskLedgerStatus::Failed; } return TaskLedgerStatus::Pending; }, ); } }