/**
 * Register a custom macro.
 *
 * @param  string           $name   Name.
 * @param  object|callable  $macro  Macro.
 * @return void
 */
public static function macro(string $name, $macro): void
Examples
$macroableClass = new class() {
    use Macroable;
};
$macroableClass::macro('concatenate', function(... $strings) {
   return implode('-', $strings);
});
$macroableClass::macro('message', function($name) {
   return 'Hello ' . $name;
});
echo $macroableClass->concatenate('one', 'two', 'three');
echo $macroableClass->message('Jack');
The above example will output:
one-two-three
Hello Jack