public function push($request)
    {
        if (empty($this->devices) && empty($this->users) && empty($this->channels)) {
            throw new \Exception('You must specify something to push to.');
        }

        $responses = [];

        $destinations = [
            'devices'  => 'device_iden',
            'users'    => 'email',
            'channels' => 'channel_tag',
        ];

        foreach ($destinations as $destination => $key) {
            foreach ($this->{$destination} as $dest) {
                $responses[] = $this->pushRequest($request, [$key => $dest]);
            }
        }

        $this->devices  = [];
        $this->users    = [];
        $this->channels = [];

        return $responses;
    }