public function handle()
{
$payload = ['channel' => $this->notification->channel];
if (!empty($this->notification->icon)) {
$icon_field = 'icon_url';
if (preg_match('/:(.*):/', $this->notification->icon)) {
$icon_field = 'icon_emoji';
}
$payload[$icon_field] = $this->notification->icon;
}
$payload = array_merge($payload, $this->payload);
if (isset($payload['attachments'])) {
$expire_at = Carbon::createFromTimestamp($payload['attachments'][0]['ts'])->addMinutes($this->timeout);
if (Carbon::now()->gt($expire_at)) {
return;
}
}
Request::post($this->notification->webhook)->sendsJson()->body($payload)->send();
}