$replies * * @method static \Illuminate\Database\Eloquent\Builder|WebsiteHelpCenterTicket orderBy($column, $direction = 'asc') * @method static \Illuminate\Database\Eloquent\Builder|WebsiteHelpCenterTicket where($column, $operator = null, $value = null) * @method static \Illuminate\Database\Eloquent\Builder|WebsiteHelpCenterTicket get($columns = ['*']) * @method static \Illuminate\Database\Eloquent\Builder|WebsiteHelpCenterTicket paginate($perPage = null, $columns = ['*'], $pageName = 'page', $page = null) */ class WebsiteHelpCenterTicket extends Model { use BelongsToUser; use HasFactory; #[\Override] protected $guarded = ['id', 'created_at', 'updated_at', 'user_id', 'status', 'subject', 'category_id']; /** @var array */ #[\Override] protected $with = ['user', 'category']; #[\Override] public $timestamps = false; public function category(): BelongsTo { return $this->belongsTo(WebsiteHelpCenterCategory::class); } public function replies(): HasMany { return $this->hasMany(WebsiteHelpCenterTicketReply::class, 'ticket_id')->latest(); } public function canDeleteTicket() { return $this->user_id === Auth::id() || hasPermission('delete_website_tickets'); } public function canManageTicket() { return $this->user_id === Auth::id() || hasPermission('manage_website_tickets'); } public function canCloseTicket() { return $this->user_id === Auth::id() || hasPermission('manage_website_tickets'); } public function isOpen() { return $this->open || hasPermission('manage_website_tickets'); } public function getContentAttribute($value) { return Purify::clean($value); } }