but later I will have to export large amount of csv that why I want to run the job in the background after job finished or error occur send notification email to user.
Create a Queueable job and put your logic there, then dispatch it. Use the powerful php artisan queue:listen to process your queued job. When done, trigger an event to send you a Notification email if everything was OK or when there is an error.
and let me explain a bit more about my app, user will use the app capture (scan) each other to get information and save to the database, after that they will export all user they have captured by click export button, my question is it's the right way to use queues and event, or do you have some post that explain something similar like my situation .