strlen($search) > 0 ? $this->getUsernameOptions($search) : [], required: true ); $user = User::whereUsername($username)->withTrashed()->first(); $profile = Profile::whereUsername($username)->withTrashed()->first(); if (!$user && !$profile) { $this->error("No user or profile found with username: {$username}"); return Command::FAILURE; } if ($user->delete_after === null || $user->status !== 'deleted') { $this->error("Cannot reclaim an active account: {$username}"); return Command::FAILURE; } $confirm = confirm( label: "Are you sure you want to force delete user and profile with username: {$username}?", default: false ); if (!$confirm) { $this->info('Operation cancelled.'); return Command::SUCCESS; } if ($user) { $user->forceDelete(); $this->info("User {$username} has been force deleted."); } if ($profile) { $profile->forceDelete(); $this->info("Profile {$username} has been force deleted."); } $this->info('Username reclaimed successfully!'); return Command::SUCCESS; } private function getUsernameOptions(string $search = ''): array { return User::where('username', 'like', "{$search}%") ->withTrashed() ->whereNotNull('delete_after') ->take(10) ->pluck('username') ->toArray(); } }