I was just fighting this same battle where my styles were getting messed-up in prod and, strangely enough, using your purge configuration caused everything to work. However, my webpack.mix.js configuration is a little different.
let mix = require('laravel-mix');
const tailwindcss = require('tailwindcss');
const VuetifyLoaderPlugin = require('vuetify-loader/lib/plugin');
mix.js('resources/js/scripts/app.js', 'public/js/app.js')
.sass('resources/sass/app.scss', 'public/css')
.webpackConfig({
plugins: [
new VuetifyLoaderPlugin()
]
})
.options({
processCssUrls: false,
postCss: [ tailwindcss('tailwind.config.js') ],
}).version()
;
Perhaps the answer lies here.