laravel-admin の issue をみていたら、ヘッダー(ユーザーアイコンやリフレッシュボタンが表示されている領域)にアイコンを追加する方法についての質問が投稿されていました。興味があって調べてみたのでその調査メモを残してきます。
まずヘッダー部分のテンプレートは vendor/encore/laravel-admin/resources/views/partials/header.blade.php に存在しますけど、ヘッダーからリフレッシュボタンなどのナビゲーションボタンを読み込む箇所は
<!-- Navbar Right Menu -->
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
{!! Admin::getNavbar()->render() !!}
という記載になっていました。Admin::getNavbar() を確認する必要がありますね。vendor/encore/laravel-admin/src/Admin.php の実装を確認すると、
/**
* Get navbar object.
*
* @return \Encore\Admin\Widgets\Navbar
*/
public function getNavbar()
{
if (is_null($this->navbar)) {
$this->navbar = new Navbar();
}
return $this->navbar;
}
とあるので Encore\Admin\Widgets\Navbar の実装を確認します。vendor/encore/laravel-admin/src/Widgets/Navbar.php を確認すると、 left()、right()、add() というメソッドでナビゲーションバーに独自の element を追加できることがわかりました。
/**
* @param $element
*
* @return $this
*/
public function right($element)
{
$this->elements['right']->push($element);
return $this;
}
例えば vendor/encore/laravel-admin/resources/views/partials/header.blade.php 直接編集し、下記のように書き換えることでメールアイコンを表示することができました。
<!-- Navbar Right Menu -->
<div class="navbar-custom-menu">
<ul class="nav navbar-nav">
<?php
Admin::getNavbar()->right('<li><a><i class="fa fa-envelope"></i></a></li>');
?>

もし、リフレッシュボタンのようにコンポーネント化した上でボタンを追加するのであれば vendor/encore/laravel-admin/resources/views/components/refresh-btn.blade.php を参考にテンプレートや、SCRIPTタグで動作を設定することになります。またこれらの修正は vendor 以下のファイルを直接編集するのではなく、テンプレートをプロジェクトディレクトリにコピーした上で行う必要があります。