hasMany(Token::class); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function entries(): HasMany { return $this->hasMany(Entry::class); } /** * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function groups(): BelongsToMany { return $this->belongsToMany(Group::class); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function overrides(): HasMany { return $this->hasMany(Override::class); } /** * @return \Illuminate\Database\Eloquent\Relations\HasMany */ public function requests(): HasMany { return $this->hasMany(Request::class); } public static function boot() { parent::boot(); static::deleting(static function (User $user) { // Detach all groups $user->groups()->detach(); // Delete all tokens /** @var \App\Token $token */ foreach ($user->tokens()->get() as $token) { $token->delete(); } /** @var \App\Entry $entry */ foreach ($user->entries()->get() as $entry) { $entry->delete(); } /** @var \App\Override $override */ foreach ($user->overrides()->get() as $override) { $override->delete(); } /** @var \App\Request $request */ foreach ($user->requests()->get() as $request) { $request->delete(); } }); } }