Modal Pop Up Isn't Working

app.blade.php

<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta name="csrf-token" content="{{ csrf_token() }}">

        <title>{{ config('app.name', 'Laravel') }}</title>

        <!-- Fonts -->
        <link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700&display=swap">

        <!-- Styles -->
        <link rel="stylesheet" href="{{ asset('css/app.css') }}">

        <!-- Scripts -->
        <script src="{{ asset('js/app.js') }}" defer></script>
    </head>
    <body class="font-sans antialiased">
        <div class="min-h-screen bg-gray-100">
            @include('layouts.navigation')

            <!-- Page Heading -->
            <header class="bg-white shadow">
                <div class="max-w-7xl mx-auto py-6 px-4 sm:px-6 lg:px-8">
                    {{ $header }}
                </div>
            </header>

            <!-- Page Content -->
            <main>
                {{ $slot }}
            </main>
        </div>
    </body>

    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    <script src="/js/app.js"></script>

</html>

createinvoice.blade

<x-app-layout>
    <x-slot name="header">
        <h2 class="font-semibold text-xl text-gray-800 leading-tight">

        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bulma@0.8.2/css/bulma.min.css">
        <script defer src="https://use.fontawesome.com/releases/v5.3.1/js/all.js"></script>
        <style type="text/css">body { padding-top: 40px; }</style>
        
        </h2>
    </x-slot>

  
            <div>Create New Invoice</div>
          
            <div id="root" class="container">
            
            <modal v-if="showModal" @close="showModal = false">
            
                <p>Test Modal Text</p>

            </modal>

            <button @click="showModal = true">Show Modal</button>
           
            </div>

        


</x-app-layout>

app.js

require('./bootstrap');

require('alpinejs');

Vue.component('modal', {

    template: `

    <div class="modal is-active">
    <div class="modal-background"></div>
    <div class="modal-content">
    <div class="box">
        <slot></slot>
    </div>
    <button class="modal-close is-large" aria-label="close" @click="$imit('close')"></button>
    </div>
    `


});

new Vue({
    el: '#root',

    data: 
     {
        showModal: false
     
    }


});