Зачем вам ловить
use PhpSpec\Exception\Exception
} catch (Exception $e) {
при промохе бросается
Illuminate\Database\Eloquent\ModelNotFoundException
Да и остальной код странный getPost(Exception $id) - почему контроллер принимает исключение в качестве параметра
public static function get($id) - не надо использовать статику, laravel через фасад вызовет метод объекта
соотвественно строка
$post = Post::where('id', '=', $id)->firstOrFail();
превращается в
return $this->findOrFail($id);
ну и далее не понятно, зачем вообще плодить этот метод, зачем ловить исключение в контроллере и т.д.
Стоит так же попробовать биндинг моделей к ротингу...
Вобщем, советую внимательно перечитать документацию