Laravel - Update Bootstrap with Composer

Install bootstrap library into vendor directory

composer require twbs/bootstrap

Create Service Provider in 'app/Providers/AssetServiceProvider.php'

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;

class AssetServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     */
    public function boot()
    {
        $this->publishes([
            base_path('vendor/twbs/bootstrap/dist/css/bootstrap.min.css') => public_path('vendor/bootstrap/css/bootstrap.min.css'),
            base_path('vendor/twbs/bootstrap/dist/css/bootstrap-theme.min.css') => public_path('vendor/bootstrap/css/bootstrap-theme.min.css'),
            base_path('vendor/twbs/bootstrap/dist/fonts') => public_path('vendor/bootstrap/fonts'),
            base_path('vendor/twbs/bootstrap/dist/js/bootstrap.min.js') => public_path('vendor/bootstrap/js/bootstrap.min.js'),
        ], 'bootstrap');
    }

    /**
     * Register any application services.
     */
    public function register()
    {
        //
    }
}

Register Service Provider in 'config/app.php':

'providers' => [
    ...
    App\Providers\AssetServiceProvider::class,
    ...
]

Publish Assets

php artisan vendor:publish --tag="bootstrap" --force

Output

Copied File [/vendor/twbs/bootstrap/dist/css/bootstrap.min.css] To [/public/vendor/bootstrap/css/bootstrap.min.css]
Copied File [/vendor/twbs/bootstrap/dist/css/bootstrap-theme.min.css] To [/public/vendor/bootstrap/css/bootstrap-theme.min.css]
Copied Directory [/vendor/twbs/bootstrap/dist/fonts] To [/public/vendor/bootstrap/fonts]
Copied File [/vendor/twbs/bootstrap/dist/js/bootstrap.min.js] To [/public/vendor/bootstrap/js/bootstrap.min.js]
Publishing complete for tag [bootstrap]!

Add style- script tags in template

{{ Html::style('vendor/bootstrap/css/bootstrap.min.css') }}
{{ Html::style('vendor/bootstrap/css/bootstrap-theme.min.css') }}
{{ Html::script('vendor/bootstrap/js/bootstrap.min.js') }}

Composer Update

Edit 'composer.json':

"scripts": {
    ...
    "post-update-cmd": [
        "php artisan optimize",
        "php artisan vendor:publish --tag=bootstrap --force"
    ]
}

Next time you run composer update your Bootstrap is updated as well!