I did something similar using "chemfig"
\documentclass[border={4mm}]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{chemfig}
\usepackage{tikz}
\newenvironment{f}{$\displaystyle\aligned}{\endaligned$}
\begin{document}
\begin{f}
&\schemestart
\chemfig{@{a}\charge{0=.}{C\ell}} + \chemfig{CH_4} \arrow{->} \chemfig{\charge{0=.}{CH_3}} + \chemfig{HC\ell}
\schemestop
\
%
& \schemestart
%
\chemfig{\charge{180=.}{CH_3}} + \chemfig{C\ell_2} \arrow{->} \chemfig{CH_3C\ell} + \chemfig{@{b}\charge{0=.}{C\ell}}
\schemestop
\ \
&\schemestart
\chemfig{@{c}\charge{0=.}{C\ell}} + \chemfig{CH_4} \arrow{->} \chemfig{\charge{0=.}{CH_3}} + \chemfig{HC\ell}
\schemestop
\
%
& \schemestart
%
\chemfig{\charge{180=.}{CH_3}} + \chemfig{C\ell_2} \arrow{->} \chemfig{CH_3C\ell} + \chemfig{@{d}\charge{0=.}{C\ell}}
\schemestop
\ \
&\schemestart
\chemfig{@{e}\charge{0=.}{C\ell}} + \chemfig{CH_4} \arrow{->} \chemfig{\charge{0=.}{CH_3}} + \chemfig{HC\ell}
\schemestop
\
%
& \schemestart
%
\chemfig{\charge{180=.}{CH_3}} + \chemfig{C\ell_2} \arrow{->} \chemfig{CH_3C\ell} + \chemfig{@{f}\charge{0=.}{C\ell}}
\schemestop
\ \
% myedge={right} para meia seta
%\begin{tikzpicture}
\chemmove{
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,shorten <=6pt,shorten >=6pt.. controls +(240:16mm) and +(60:16mm)..(c);
\drawred,shorten <=6pt,shorten >=6pt.. controls +(240:16mm) and +(60:16mm)..(e);
}
\end{f}
\end{document}

this code will align the arrows
\documentclass[border={4mm}]{standalone}
\usepackage[utf8]{inputenc}
\usepackage{amsmath}
\usepackage{chemfig}
\usepackage{tikz}
\newenvironment{f}{$\displaystyle\aligned}{\endaligned$}
\begin{document}
\begin{f}
\schemestart
\chemfig{@{a}\charge{0=.}{C\ell}} + \chemfig{CH_4} \schemestop & \schemestart \arrow{->} \chemfig{\charge{0=.}{CH_3}} + \chemfig{HC\ell}
\schemestop
\
%
\schemestart
%
\chemfig{\charge{180=.}{CH_3}} + \chemfig{C\ell_2} \schemestop & \schemestart \arrow{->} \chemfig{CH_3C\ell} + \chemfig{@{b}\charge{0=.}{C\ell}}
\schemestop
\ \
\schemestart
\chemfig{@{c}\charge{0=.}{C\ell}} + \chemfig{CH_4}\schemestop & \schemestart \arrow{->} \chemfig{\charge{0=.}{CH_3}} + \chemfig{HC\ell}
\schemestop
\
%
\schemestart
%
\chemfig{\charge{180=.}{CH_3}} + \chemfig{C\ell_2}\schemestop & \schemestart \arrow{->} \chemfig{CH_3C\ell} + \chemfig{@{d}\charge{0=.}{C\ell}}
\schemestop
\ \
\schemestart
\chemfig{@{e}\charge{0=.}{C\ell}} + \chemfig{CH_4} \schemestop &\schemestart \arrow{->} \chemfig{\charge{0=.}{CH_3}} + \chemfig{HC\ell}
\schemestop
\
%
\schemestart
%
\chemfig{\charge{180=.}{CH_3}} + \chemfig{C\ell_2} \schemestop & \schemestart \arrow{->} \chemfig{CH_3C\ell} + \chemfig{@{f}\charge{0=.}{C\ell}}
\schemestop
%------------------------------------------------------
\chemmove{
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,dotted circle (.35);
\drawred,shorten <=6pt,shorten >=6pt.. controls +(240:16mm) and +(60:16mm)..(c);
\drawred,shorten <=6pt,shorten >=6pt.. controls +(240:16mm) and +(60:16mm)..(e);
}
\end{f}
\end{document}

&before each symbol->but for dots mhchem package seems to be using.or*for dots next to chemical symbols and typeset them in the middle – Celdor Sep 22 '22 at 15:58