public function impersonate(
        $access_token,
        $user_id,
        $protocol,
        $impersonator_id,
        $client_id,
        array $additionalParameters = []
    )
    {
        $data = [
            'protocol' => $protocol,
            'impersonator_id' => $impersonator_id,
            'client_id' => $client_id,
            'additionalParameters' => $additionalParameters,
        ];

        return $this->apiClient->post()
            ->users($user_id)
            ->impersonate()
            ->withHeader(new ContentType('application/json'))
            ->withHeader(new AuthorizationBearer($access_token))
            ->withBody(json_encode($data))
            ->call();
    }