'datetime', ]; protected static function boot() { parent::boot(); static::deleted(function ($user) { $user->characters()->delete(); }); } public function main_character() { return $this->belongsTo(Character::class, 'character_id'); } public function alt_characters() { $relation = $this->hasMany(Character::class); if ($this->character_id) { $relation->where('id', '!=', $this->character_id); } return $relation; } public function characters() { $relation = $this->hasMany(Character::class); // sort main character first if set. if ($this->character_id) { $relation->orderByRaw('id = ' . $this->character_id . ' DESC'); } return $relation; } public function getRoleAttribute() { if (!$this->attributes['role']) { return 'user'; } return $this->attributes['role']; } }