*/ protected $fillable = [ 'application_number', 'user_id', 'status', 'board_result', 'submitted_at', 'completed_at', ]; /** * @var list */ protected $hidden = [ ]; protected function casts(): array { return [ 'status' => ApplicationStatus::class, ]; } public function applicant(): HasOne { return $this->hasOne(MembershipApplicationApplicant::class); } public function heirs(): HasMany { return $this->hasMany(MembershipApplicationHeir::class); } public function references(): HasMany { return $this->hasMany(MembershipApplicationReference::class); } public function reviews(): HasMany { return $this->hasMany(MembershipApplicationReview::class); } public function user() { return $this->belongsTo(User::class); } public function resultLetterDocument(): MorphOne { return $this->morphOne(Document::class, 'documentable') ->where('type', self::RESULT_LETTER_DOCUMENT_TYPE); } }