Not really hard, but a wrap around the extremely extensive documentation of Guzzle.

You want to send a POST request to an external source like an API par example.
First of all, add Guzzle to your composer.json and use the update command in your console.

"require": {
   "laravel/framework": "5.1.*",
       "guzzlehttp/guzzle": "~5.0"
   },
composer self-update
composer update

Now we want to do a request with some payload of data. In this case I will use json, but you can seemlessly switch json for body, works the same. Benefit of using JSON in this example is that it already sets the right headers for you.

First, set the right namespace to use.

use GuzzleHttp\Client;

Then, create a new GuzzleHttp instance:

  $client = new Client;

Then, create the request and execute it.

 $r = $client->post('https://api.apiprovider.com:9900/create_task', 
                ['json' => [
                    "access_token" =>"thats a secret!",
                    "another_payload" => $aVariable
                ]]);

 

As promised, super easy.