user->is_subscribed) { return; } // User is not subscribed anymore - remove guests $this->user->workspaces->each(function (Workspace $workspace) { // Flush workspace cache to be sure we have the latest data $workspace->flush(); if ($workspace->is_pro) { // Another user still has pro subscription return; } // Detach all users from the workspace (except the owner) foreach ($workspace->users()->where('users.id', '!=', $this->user->id)->get() as $user) { \Log::info('Detaching user from workspace', [ 'workspace_id' => $workspace->id, 'workspace_name' => $workspace->name, 'user_id' => $user->id, 'user_email' => $user->email, ]); $workspace->users()->detach($user); } }); } }