*/ public function user(): BelongsTo { return $this->belongsTo(User::class); } /** * @return BelongsTo */ public function category(): BelongsTo { return $this->belongsTo(WebsiteHelpCenterCategory::class); } /** * @return HasMany */ public function replies(): HasMany { return $this->hasMany(WebsiteHelpCenterTicketReply::class, 'ticket_id'); } 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'); } /** * @return \Illuminate\Database\Eloquent\Casts\Attribute */ protected function content(): \Illuminate\Database\Eloquent\Casts\Attribute { return \Illuminate\Database\Eloquent\Casts\Attribute::make(get: fn ($value) => Purify::clean((string) $value)); } }