ticket_id)) { do { $ticketId = 'TKT-'.mb_strtoupper(Str::random(8)); } while (static::query()->where('ticket_id', $ticketId)->exists()); $ticket->ticket_id = $ticketId; } }); } /** * @return BelongsTo */ public function user(): BelongsTo { return $this->belongsTo(User::class, 'user_id'); } /** * @return BelongsTo */ public function connectedApp(): BelongsTo { return $this->belongsTo(ConnectedApp::class, 'connected_app_id'); } /** * @return BelongsTo */ public function status(): BelongsTo { return $this->belongsTo(TicketStatus::class, 'status_id'); } /** * @return BelongsToMany */ public function notifiedRoles(): BelongsToMany { return $this->belongsToMany( Role::class, 'ticket_notified_roles', 'ticket_id', 'role_id' ); } /** * @return BelongsToMany */ public function notifiedUsers(): BelongsToMany { return $this->belongsToMany( User::class, 'ticket_notified_users', 'ticket_id', 'user_id' ); } /** * @return HasMany */ public function attachments(): HasMany { return $this->hasMany(TicketAttachment::class, 'ticket_id'); } }