*/ protected $fillable = [ 'name', 'email', 'password', 'institution', 'gender', 'phone_number', 'tujuan_permohonan', 'role', 'approval_status', ]; /** * The attributes that should be hidden for serialization. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; /** * The attributes that should be cast. * * @var array */ protected $casts = [ 'email_verified_at' => 'datetime', ]; protected $appends = ['managed_diseases']; public function managedDiseases() { return $this->belongsToMany(Disease::class, 'disease_operator', 'user_id', 'disease_id'); } public function getManagedDiseasesAttribute() { if ($this->role === 'operator') { $disease = $this->managedDiseases() ->select(['diseases.id as disease_id', 'diseases.name']) ->first(); if ($disease) { return [ 'disease_id' => $disease->disease_id, 'name' => $disease->name, 'pivot' => [ 'user_id' => $disease->pivot->user_id, 'disease_id' => $disease->pivot->disease_id, ], ]; } } return null; } }