<?php

namespace App;

use Carbon\Carbon;
use App\BookingStrategyTimeslot;
use App\BookingStrategyDateslot;

class BookingStrategy
{
    private $strategy = null;

    public function __construct($strategyId)
    {
        switch ($strategyId) {
            case 'timeslot': $this->strategy = new BookingStrategyTimeslot(); break;
            case 'dateslot': $this->strategy = new BookingStrategyDateslot(); break;
            default:
                Log::warning("BookingStrategy: __construct: Illegal strategy:{$this->strategy}");
            break;
        }
    }

    public function makeReservation(User $issuer, Business $business, $data)
    {
        return $this->strategy->makeReservation($issuer, $business, $data);
    }
}

interface BookingStrategyInterface
{
    public function makeReservation(User $issuer, Business $business, $data);
}

<?php

namespace App;

use Carbon\Carbon;
use App\BookingStrategyTimeslot;
use App\BookingStrategyDateslot;
use Log;

class BookingStrategy
{
    private $strategy = null;

    public function __construct($strategyId)
    {
        switch ($strategyId) {
            case 'timeslot':
                $this->strategy = new BookingStrategyTimeslot();
            break;
            case 'dateslot':
                $this->strategy = new BookingStrategyDateslot();
            break;
            default:
                Log::warning("BookingStrategy: __construct: Illegal strategy:{$this->strategy}");
            break;
        }
    }

    public function makeReservation(User $issuer, Business $business, $data)
    {
        return $this->strategy->makeReservation($issuer, $business, $data);
    }
}

interface BookingStrategyInterface
{
    public function makeReservation(User $issuer, Business $business, $data);
}

Enhance coding style and add use Log
Enhance coding style and add use Log

https://codeclimate.com/github/alariva/timegrid/app/BookingStrategy.php#all
