Calentaremos la mantequilla en una cazuela. Agregaremos la cebolla cortada en juliana fina, rehogándo a a fuego lento, hasta que esté tierna y doradita. Incorporaremos el cordero cortado en dados, dorándolos por todos los lados. Espolvorearemos la canela, la sal y la pimienta negra. Taparemos la sartén y lo dejaremos cocer durante 10 minutos, a fuego suave. Añadiremos el puré de tomate y agua hasta cubrir la carne. Agregaremos el perejil picado y cuando arranque el hervor, lo taparemos y dejaremos cocer a fuego bajo unos 90 minutos.
Mientras tanto picaremos los pistachos.
Añadiremos agua suficiente a la cazuela, unos 2 1/2 vasos. Añadiremos los orejones de albaricoque cortados por la mitad, los pistachos picados y el arroz enjuagado, calentaremos hasta que arranque a hervir, luego bajaremos el fuego, taparemos la cazuela y lo dejaremos cocer durante 20 minutos más.
Pasaremos el cordero con el arroz, a una fuente de servir, previamente calentada y lo adornaremos con ramitas de perejil.