VectorCast::class, 'redaction_report' => 'array', 'result_payload' => 'array', 'api_credentials' => 'encrypted:array', 'needs_article_draft' => 'boolean', 'embedded_at' => 'datetime', 'processed_at' => 'datetime', ]; public function decisions(): HasMany { return $this->hasMany(AIDecision::class); } public function feedback(): HasMany { return $this->hasMany(Feedback::class); } public function logs(): HasMany { return $this->hasMany(TicketProcessingLog::class) ->orderByDesc('created_at') ->orderByDesc('id'); } public function toolCalls(): HasMany { return $this->hasMany(TicketToolCall::class) ->orderByDesc('created_at') ->orderByDesc('id'); } public function bestArticle(): BelongsTo { return $this->belongsTo(Article::class, 'best_article_id'); } public function draftArticle(): BelongsTo { return $this->belongsTo(Article::class, 'draft_article_id'); } }